-2

我需要从FORM. 我的表格是:

<form action="" id="test">
   <h2>Data</h2>
   <label for="">Name</label>
   <input type="text" name="name">
   <label for="">address</label>
   <input type="text" name="address">
   <label for="">phone</label>
   <input type="text" name="phone">
   <input type="button" onclick="xd()" value="click here">
</form>

为此,我使用了这个 javascript 命令:

 <script type="text/javascript">
 function xd(){
 //var x=document.forms["test"].getElementsByTagName("address") or
 var x=document.forms["test"].getElementsByTagName("address").value
 document.write(x);
 }
 </script>

但它不起作用。怎么轻松搞定。

4

3 回答 3

1

您似乎通过其name属性(地址)而不是其tagName属性来定位元素。

.getElementsByTagName查找容器中具有特定tagName... 的所有元素,这意味着元素的“ tagNamea <a href="#">asdf</a>”是“a”。

我会使用:

<script type="text/javascript">
    function xd(){
        var inputs = document.forms["test"].getElementsByTagName("input");
        for (var i = 0 ; i < inputs.length; i++) {
            if (inputs[i].name === "address") {
                // `inputs[i]` is the element with the name "address"
            }
        }
    }
</script>

您必须遍历结果,并将匹配元素的name属性与您想要的...“地址”进行比较。

当然,另一种选择是使用getElementsByName("address"),例如:

var address = document.forms["test"].getElementsByName("address");
if (address.length > 0) {
    // `address[0]` is the element with the name "address"
}

最后一个选择是使用querySelectorAll('input[name="address"]'),例如:

var address = document.forms["test"].querySelectorAll('[name="address"]');
if (address.length > 0) {
    // `address[0]` is the element with the name "address"
}
于 2013-04-09T06:25:24.213 回答
0

你没有标签“地址”。而不是名字放id。这对你来说很容易

 <input type="text" name="address" id="addressId">
var x=document.forms["test"].getElementsById("addressId").value

或使用

var inputs = document.forms["test"].getElementsByTagName("input");

for (var i = 0 ; i < inputs.length; i++) {
            if (inputs[i].name === "address") {
                // `inputs[i]` is the element with the name "address"
            }
        }
于 2013-04-09T06:24:20.253 回答
0

你的意思是getElementsByName("address")[0]

于 2013-04-09T06:25:53.027 回答