1

これがデモテーブルです

<table id="table1">
<tr>
<td><label>name</label><input type="text" id= "name1"/></td>
<td><label>age</label><input type="text" id= "age1"/></td>
<td><input type="button" id= "addRow"style="background-image:url("images/addicon.png");"/></td>
</tr>

そしてjqueryコードmは

 $("#addRow").live("click", function (e, index) {
 var val = ("#table1 tr").length();
 val++;
    $('#table1  tbody > tr:last').after('<tr><td><label>name</label><input type="text" id= "name"'+val+'/></td><td><label>age</label><input type="text" id= "age"'+val+'/></td><td><input type="button" id= "addRow"style="background-image:url("images/addicon.png");"/></td><td><input type=button  id="deleteRow" style="background-image:url("images/removeicon.png");"></td>');
  });
  $("#deleteRow").live("click",function(e,index){
     $(this).parent().closest("tr").remove();
  });

ここで、誰かが行を2回追加し、行を削除すると問題が発生します。つまり、valはname2になり、name3はname2が削除されたと仮定し、次に行番号を追加します。行の数が2であるため、val ++の結果は3になり、新しい行のidはname3になります。これは、私にとって問題を引き起こしています。実際に必要なのは、削除される行に関係なく、行数1 23...をこのように維持する必要があることです。誰かがこれで私を助けることができますか、私はたくさんのチュートリアルを経験しました、しかしそれらのどれもyiがこの質問を提起した均一な行数を維持していません。

4

1 に答える 1

1

入力名を使用name[]して、フォームに値の配列を含めることができます。これはname1name2、 などを使用するよりも簡単です。懸念がラベルである場合は、次のように、入力をラベルでラップして をスキップできますfor

<label>String: <input></label>

クリックするとString:、入力がフォーカスされます。

あなたが持っているものに固執したい場合は、val1つのスコープを外部に保存.clickし、毎回インクリメントしてください。長さに頼らないでください。


ちなみに、利用可能であると仮定してから.liveに切り替えることも必要です。.on

于 2013-01-20T17:29:56.177 に答える