У меня есть страница с более чем одной формой. Одна форма (см. Пример ниже) имеет вход для добавления строк в таблицу на странице. Каждая из строк в таблице может быть выбрана (флажок) вкл / выкл. Другая форма отправляет страницу, отправляющую строки, которые были включены, на следующую страницу.
Итак, первоначальная проблема заключалась в том, что люди вводили URL и нажимали кнопку возврата, чтобы добавить его в таблицу, но вместо этого не добавляли его, а отправляли «другую» форму (mainForm).
Итак, я добавил jQuery ниже. Это решило проблему - теперь, когда поле URL находится в фокусе и вы нажимаете кнопку возврата, оно добавляет URL в список и не передает mainForm.
Однако, когда это поле НЕ находится в фокусе, нажатие возврата ничего не делает - когда я ожидал, что оно отправит форму (поведение по умолчанию) ... так как событие прикреплено только к этому одному полю ввода.
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?