私はHTMLで書かれたフォームを持っています。このフォームには2つのボタンと表があります。表の各行には、チェックボックスと2つのテキストフィールドがあります。他の機能が動作している間はJavaScriptの機能が動作しません
このボタンは、表から行を追加および削除するためのボタンです。削除ボタンは、チェックボックスがチェックされている行にのみ適用されます。彼らはonClick
メソッドを持っています。これは、addRow(tableID)
とdeleteRow(tableID)
の<script>
タグでJavaScriptで書かれた2つのメソッドを参照しています。
addRow(tableID)
はボタンをクリックすると機能しますが、削除ボタンをクリックすると何も起こりません。これはdeleteRow(tableID)
メソッドを指します。
<form action="Page2.php" method="post" enctype="multipart/form-data">
<!-- Contacts Details -->
<p>
<input type="button" value="Add Contact" onClick="addRow('contacts')" />
<input type="button" value="Remove Contact" onClick="deleteRow('contacts')" />
<p>(All actions apply only to entries with check marked check boxes only.)</p>
</p>
<table id="contacts" class="form" border="1">
<tbody>
<tr>
<p>
<td>
<input type="checkbox" name="chk[]" checked="checked" />
</td>
<td>
<label>Address</label>
<input type="text" name="ADDRESS[]" />
</td>
<td>
<label for="PHONE_NUMBER">Phone Number</label>
<input type="text" class="small" name="PHONE_NUMBER[]" />
</td>
</p>
</tr>
</tbody>
</table>
<script>
function addRow(tableID) {
var table = document.getElementById(tableID);
var rowCount = table.rows.length;
if (rowCount < 10) {
var row = table.insertRow(rowCount);
var colCount = table.rows[0].cells.length;
for (var i = 0; i < colCount; i++) {
var newcell = row.insertCell(i);
newcell.innerHTML = table.rows[0].cells[i].innerHTML;
}
} else {
alert("Maximum Contacts Number is 10");
}
}
function deleteRow(tableID) {
var table = document.getElementById(tableID);
var rowCount = table.rows.length;
for (var i = 0; i < rowCount; i++) {
debugger;
var row = table.rows[i];
var chkbox = row.cells[0].childNodes[0];
if (null != chkbox && true == chkbox.checked) {
if (rowCount <= 1) {
alert("Cannot Remove all Contacts");
break;
}
table.deleteRow(i);
rowCount--;
i--;
}
}
}
</script>
<!-- Form Sending -->
<input type="submit" value="Proceed">
</form>
EDIT番号:
これは、フォームのコードです!:
私はちょうど上記のコードをデバッグしました。とrow
のdeleteRow(tableID)
メソッドからのデバッグ結果は、undefined
と表示されています。
これを解決するにはどうすればよいですか?
を探しているquery for the elementすることです。 1に設定された枠線は、別の質問でなければなりません。そうすることで、他の人を検索して助けることができます。また、実際の例が必要です。最後に、Liamが述べたように、どのようなデバッグをしましたか? –
私はあなたのコードを編集してデバッガー文を入れました。開発ツールを開いた状態で実行すると、問題が発生します。あなたの 'chkbox'変数を調べてください。以前にデバッグしたことがない場合は、Liamのリンクhttps://stackoverflow.com/questions/988363/how-can-i-debug-my-javascript-code –
を参照してください。私のコメントは実際に問題が何であるかを正確に伝えています。そうした場合は、質問を編集し、デバッグした方法と現在直面している問題を表示する必要があります。スタックオーバーフローは他の人があなたのためにあなたのコードをデバッグするのではなく、あなたが少なくともあるレベルのデバッグを行ったことを示す必要があります。本当に、私はあなたの質問に答えましたが、私はあなた自身でそれを理解する方法を学ぶためにあなたを軽く指摘しています。あなたが行ったデバッグを追加したら、私は再び投票することを嬉しく思っていますが、あなたが自分のヒントに従えば、あなた自身でそれを理解することができます。 –