「塗りつぶし」が「ユーザーが電話フィールドで許可されている数の文字を入力したとき」を意味する場合はmaxlength="10"
、入力に属性を追加できます(適切な値を設定します)。
<input type="text" name="phone[]" id="phone" maxlength="10"/>
...そして、現在の値が:keyup
に達したかどうかをチェックするハンドラーをイベントに追加します。maxlength
$('input[name="phone\[\]"]').keyup(function() {
if (this===$('input[name="phone\[\]"]').last()[0]
&& this.value.length===+$(this).attr("maxlength")) {
$("#add").click();
}
});
このテストは、ユーザーが最後の行に入力している場合にのみ実行する必要があることに注意してください。したがって、if
上記のテストの最初の部分です。
また、新しく複製されたフィールドを空白にしたい場合もあるので、add関数内でこれを行うことができます。
$('#mytable tbody>tr:last').clone(true).insertAfter('#mytable tbody>tr:last')
.find("input").val("");
行の最大数を設定するには、add関数にテストを配置できます。
$("#add").click(function() {
var $lastRow = $('#mytable tbody>tr:last');
if ($lastRow.index() < 10) { // set maximum rows here
$lastRow.clone(true).insertAfter($lastRow).find("input").val("");
}
return false;
});
また、これらの入力に属性を指定する必要はありませんが、指定する場合は、一意である必要があるid
ため、クローンを作成するときにコピーしないでください。id
削除機能の場合、各行に削除ボタンを追加します。
<td><input type="button" class="deleteRow" value="Delete"/></td>
...その後:
$("#mytable").on("click","input.deleteRow", function(){
if ($("#mytable tr").length > 2) // don't delete the last row
$(this).closest("tr").remove();
});
デモ: http: //jsfiddle.net/3J65U/15/