データベース レコードを表す行を含む HTML テーブルがあります。最後の列のセルには、データベース レコードを削除するための送信ボタンのあるフォームがあります。フォームには一意の ID がありますが、その中のフィールドには名前だけがあり、それらの名前は各フォームで同じです。
簡単なユーザー確認がありますが、Javascript が実行されていない (エラーか何か) ためにフォームが送信されないようにしたいと考えています。そこで、非表示フィールドの 1 つの値を空白のままにして、送信時に入力しようと考えました (処理スクリプトで必要とされるフィールドですが、どのレコードを選択しても同じ値になるため、簡単です)割り当てます)。これが私が試したものです:
$(document).ready(function() {
$("form[id^='deltrans']").submit(function(e) {
if (confirm("Are you sure you want to delete this transaction?")) {
$(this).find("[name='uri']").val("my value...");
} else {
e.preventDefault();
}
});
});
しかし、 $(this).find() を使用してもうまくいかないようです - Firebug によると、 $(this).find("[name='uri']").val() は未定義です。私のエラーを確認できますか、または JS に問題がある場合に誤ってフォームが送信されるのを防ぐ方法について、より適切で簡単な提案をいただけますか?
編集:コメントのリクエストごとに、関連するHTMLは次のとおりです。
<form method="post" id="deltrans<? echo $row->TransID; ?>" action="processor.php">
<td class="button-in-table">
<input type="hidden" name="tid" value="<? echo $row->TransID; ?>">
<input type="hidden" name="uri" value="">
<input type="submit" name="deltrans" value="Del">
</td>
</form>