0

我有一个动态添加行的表,这些行具有用于动态使用、提交等的不同属性。我有一个带有自动完成功能的输入框,它必须更改其余输入框的值。没有固定的值怎么能改变nameid或者class

动态创建的行:

<tr>
  <div id="1">
    <div id="2">
      <input type="text" name="input1" id="input1" class="input1" />
    </div>
    <div id="3">
      <input type="text" name="input2" id="input2" class="input2" onkeyup="foo(this);"/>
    </div>
  </div>   
  <input type="text" name="input3" id="input3" class="input3" />
  <input type="text" name="input4" id="input4" class="input4" />
</tr>

JavaScript 函数:

foo(node){
   //node.name is input2
   change input1.value;
   change input3.value;
   change input4.value;

};

我不能依赖函数的静态属性,它们必须在创建元素后传递。

4

2 回答 2

1

如果你愿意使用 jQuery,你可以这样做:

$(function(){
   $("#yourTable").on("keyup","INPUT",function(){
       $("INPUT").not(this).val($(this).val());
   });
});

JSFiddle:http: //jsfiddle.net/b6nDX/1/

这将使所有字段更改为在表中的任何字段中键入的任何内容。

注意:如果您只想使用一个“源”字段,您当然需要缩小选择器的范围

于 2012-10-11T11:38:55.227 回答
0

这可以通过 DOM 属性实现。

例子:

foo(elem){
    elem.parentNode.parentNode.parentNode.parentNode.children[2].children[0].children[1].children[0].value = "";
    elem.parentNode.parentNode.parentNode.parentNode.children[5].children[0].value = "";
    elem.parentNode.parentNode.parentNode.parentNode.children[6].children[0].value = "";
    elem.parentNode.parentNode.parentNode.parentNode.children[7].children[0].value = "";
    elem.parentNode.parentNode.parentNode.parentNode.children[8].children[0].value = "";    
};
于 2012-10-11T16:43:02.957 回答