複数のフォームを含むページがあります。1 つのフォーム (以下の例を参照) には、ページ上のテーブルに行を追加するための入力があります。テーブル内の各行は、オン/オフで選択 (チェックボックス) できます。もう一方のフォームは、どの行が「オン」であったかを次のページに送信するページを送信します。
したがって、最初の問題は、人々が URL を入力して [戻る] をクリックしてテーブルに追加していたのに、それを追加するのではなく、「他の」フォーム (mainForm) を送信していたことでした。
そこで、以下に jQuery を追加しました。これで問題は解決しました。現在、url フィールドにフォーカスがあり、return をクリックすると、リストに url が追加され、mainForm が送信されません。
ただし、そのフィールドがフォーカスされていない場合、リターンを押しても何も起こりません-フォームを送信することを期待していたとき(デフォルトの動作)...イベントはその1つの入力フィールドにのみ関連付けられているためです。
HTML (大幅に簡略化):
<form name="data>
<input id="url" class="field" type="text" size="65" name="urlText">
<input class="hubField" type="button" value="Add Url" name="urlAddButton">
<table>
<tr>
<td><input type="checkbox"></td>
<td>Description text</td>
....and so on...
</table>
</form>
<form name="mainForm">
<input type="SUBMIT" value="Load Selected Urls" name="Submit">
</form>
JS/jQuery:
$(document).ready(function() {
$('#url').bind('keyup',function(e) {
if (e.which == 13) {
$('input[name="urlAddButton"]').focus().click();
e.preventDefault();
}
})
});
私はjQueryにかなり慣れていないので、よろしくお願いします。;-) js では、そのフィールドがフォーカスされておらず、リターンが押された場合、メインフォームを送信するということを書くだけです。JQueryでこれを簡単に行うためのトリックはありますか?