0

動的に使用したり、送信したりするためのさまざまなプロパティを持つ動的に追加された行を持つテーブルがあります。オートコンプリート機能を備えた1つの入力ボックスがあり、残りの入力ボックスの値を変更する必要があります。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/

これにより、すべてのフィールドが、テーブル内の任意のフィールドに入力されているものに変更されます。

注:「ソース」フィールドを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 に答える