2014-09-13 70 views
-5

我正試圖在HTML代碼中提取表單的值。表單是用Java腳本編寫的。如何獲得JavaScript中沒有ID的表單的<輸入值?

這是我使用目前的功能,它使用的格式ID來自:

<!DOCTYPE html> 
<html> 
<body> 

<form id="frm1"> 
      <tr> 
      <td nowrap="nowrap"> 
       <label>Number of Panels</label> 
      </td> 
      <td> 
       <input class="display" type="text" size="8" readonly="readonly" value="20"/> 
      </td> 
      </tr> 
      <tr> <br> 

Last name: <input type="text" name="lname" value="Duck"><br><br> 
</form> 

<p>Click "Try it" to display the value of each element in the form.</p> 

<button onclick="myFunction()">Try it</button> 

<p id="demo"></p> 
<script> 
function myFunction() { 
    var x = document.getElementById("frm1"); 
    var text = ""; 
    var i; 
    for (i = 0; i < x.length ;i++) { 
     text += x.elements[i].value + "<br>"; 
    } 
    document.getElementById("demo").innerHTML = text; 
} 
</script> 
</body> 
</html> 

這樣做的輸出點擊「試用」按鈕會給後:鴨

我的問題是,實際的腳本沒有表單ID,因爲如此:

<!DOCTYPE html> 
<html> 
<body> 

<form> 
      <tr> 
      <td nowrap="nowrap"> 
       <label>Number of Panels</label> 
      </td> 
      <td> 
       <input class="display" type="text" size="8" readonly="readonly" value="20"/> 
      </td> 
      </tr> 
      <tr> <br> 

Last name: <input type="text" name="lname" value="Duck"><br><br> 
</form> 

<p>Click "Try it" to display the value of each element in the form.</p> 

<button onclick="myFunction()">Try it</button> 

<p id="demo"></p> 
<script> 
function myFunction() { 
    var x = document.getElementById("frm1"); 
    var text = ""; 
    var i; 
    for (i = 0; i < x.length ;i++) { 
     text += x.elements[i].value + "<br>"; 
    } 
    document.getElementById("demo").innerHTML = text; 
} 
</script> 
</body> 
</html> 

如何獲取此表單的值t帽子沒有ID?

乾杯!

+0

你可以試試'document.getElementsByTagName(「形式「) – AmanVirdi 2014-09-13 14:37:26

+0

Steven V,它不是重複的:) 我的表單本身沒有id =」xxx「而不是 2014-09-13 16:37:56

回答

0

在現代瀏覽器(和IE8),可以使用document.querySelector使用任何CSS selector找到一個元素。

在你的情況,例如,你可以使用

var x = document.querySelector('[action="form_action.asp"]'); 

...其action屬性的值來關注一下吧。其餘的功能不會改變。

querySelector找到第一個匹配元素。如果您想要一個所有匹配元素的列表,您可以使用querySelectorAll。在你的情況,例如,如果你想在表單內的input元素的列表,你可以這樣做:

var elements = document.querySelectorAll('[action="form_action.asp"] input'); 

如:

function myFunction() { 
    var elements = document.querySelectorAll('[action="form_action.asp"] input'); 
    var text = ""; 
    var i; 
    for (i = 0; i < elements.length ;i++) { 
     text += elements[i].value + "<br>"; 
    } 
    document.getElementById("demo").innerHTML = text; 
} 
+0

感謝您的回覆。如果我沒有任何東西,但是

和action =「form_action.asp」不存在,該怎麼辦?因爲這實際上是我正在處理的。 – 2014-09-13 16:59:07

+0

@AhmadK:那麼爲什麼你的問題有'行動'?無論如何,重點是:任何CSS選擇器你可以拿出來匹配表單或其中的元素將讓你通過'querySelector'或'querySelectorAll'獲得它們。 – 2014-09-13 17:02:12

+0

非常感謝您,先生,您剛剛解決了我的問題:) – 2014-09-13 17:30:04

0

你可以這樣做:

var x = document.forms[0]; 

而對於輸入,你可以做document.getElementsByTagName("input")[index]

+0

沒有工作,還有其他建議嗎? – 2014-09-13 17:03:10

相關問題