2013-07-20 47 views
-1

我想要做的是獲取隱藏表格的名稱,在這種情況下命名爲:6ca3787zz7n149b2d286qs777dd8357b,問題是,表格名稱總是變化,唯一相同的是它的值,這是1,99%的時間,唯一的100%相同,我猜可能以某種方式用來檢索表單名稱:L2ZvcnVtcy8就在它的上面。我也試圖通過在瀏覽器(chrome)上手動運行javascript來完成此操作,因此請牢記javascript代碼是否通過url欄像這樣運行:codegoeshere,如何獲取表單名稱 - > (6ca3787zz7n149b2d286qs777dd8357b)?獲取隱藏表格的名稱

<form action="index.php?feature=xxxxxx" method="post" name="login"> 
         <input type="submit" name="submit" class="button" value="Logout" /> 
         <input type="hidden" name="option" value="username" /> 
               <input type="hidden" name="task" value="logout" /> 
         <input type="hidden" name="return" value="L2ZvcnVtcy8=" /> 
         <input type="hidden" name="6ca3787zz7n149b2d286qs777dd8357b" value="1" />     </form> 
        </li> 
+0

我只是說,那個具體輸入的名字,是的。 – user2536979

+0

我沒有自己的網站,所以我不能修改任何東西。 – user2536979

+0

它是否始終是表單中的最後一個輸入? – naththedeveloper

回答

0

檢查所有下面的this fiddle解決方案。

一些可能性:

  • 假設只有一個與namelogin元素,該元素是<form>,你可以使用:

    document.getElementsByName('login')[0].getElementsByTagName('input')[4].name 
    
  • 如果return<input>有一個固定的name屬性,那麼這應該工作(額外.nextSibling是因爲它們之間有一個文本節點):

    document.getElementsByName('return')[0].nextSibling.nextSibling.name 
    
  • 如果有任何其他的那些<input> S的有一個固定的名字,您可以使用(在例子中,我把<input>name=task):

    document.getElementsByName('task')[0].parentNode.getElementsByTagName('input')[4].name); 
    
  • 如果你真的有固定的價值,你將不得不使用for循環通過所有的<input> s:

    var lastResortName = (function() { for(var i=0, ipts = document.getElementsByTagName('input'), n = ipts.length; i < n; i++) { if (ipts[i].value === "L2ZvcnVtcy8=") return ipts[i+1].name; } })(); 
    

注意:如果有重複值對於所提到的name屬性,隨着指數([0][1][2]等)測試,直到找到期望的元素。

+0

感謝man完美,真的很感謝:)。 – user2536979

-1

,如果你使用JQuery那真的很容易:

$('input[type="hidden"]:eq(3)').attr('name') 

這裏你的代碼運行: http://jsfiddle.net/7CHYa/

+0

OP在他的問題中指定了他直接在瀏覽器中添加JS,並且這樣不能使用jquery .. – naththedeveloper