1

我有两个文本框

<input id='random_value' name='random_name' value='First'
<input id='random_value' name='random_name' value=''

我需要用“第二”替换具有“第一”值的文本框的值,而不是使用文本框 ID 或文本框名称。这可能吗?

4

3 回答 3

3

如果所有输入元素的值为“First”,则此函数将用“Second”替换所有输入元素中的值:

function replaceTextboxValue() {
    var els = document.getElementsByTagName("INPUT");
    for(var i = 0, ceiling = els.length; i < ceiling; i++) {
        if(els[i].value == "First")
            els[i].value = "Second";
    }
}
于 2012-07-05T12:07:47.233 回答
0

您可以进行如下选择:

var input = document.getElementsByTagName("INPUT");
var j = 0;

for (var i = 0; i < input.length; i++) {
  if (input[i].type == "text") {
      if (input[i].value == "First") {
         input[i].value == "Second"
      }
  }
}

或者,如果您知道 dom 中该元素的索引,则可以直接执行以下操作:

<HTML>    
<FORM>

   <input id='random_value' name='random_name' value='First'/>
   <input id='random_value' name='random_name' value=''/>
    </FORM>
</HTML>

您可以设置值如下:

document.forms[0].elements[0].value=document.forms[0].elements[1].value;

如果表单是第一个并且文本框是表单的第一个元素,否则您可以指定它的索引。

如果您不知道索引,那么您可以遍历所有元素的循环并检查值“First”并完成它。

于 2012-07-05T12:03:13.330 回答
0

你必须做一个循环

 var x= document.getElementsByTagName('input');
 var i =0;
 for(i = 0; i < x.length;i++){
     if(x[i].value == "First"){
        x[i].value = "Second";
     }
 }
于 2012-07-05T12:03:38.187 回答