Как преобразовать onchange = "this.form.submit ()" в jquery - PullRequest
1 голос
/ 14 июля 2010

Как преобразовать onchange="this.form.submit()" в формат jQuery?

<form action="process.php" method="post">
  <select name="qty" onchange="this.form.submit()">
    <option value="1">1</option>
    <option value="2">2</option>
    <option value="3">3</option>
    <option value="4">4</option>
  </select>
</form>

У меня возникла проблема, потому что некоторые браузеры ничего не будут делать с process.php, если использовать onchange="this.form.submit()"

Дайте мне знать ..

Ответы [ 4 ]

6 голосов
/ 14 июля 2010

Как это:

$('select[name="qty"]').change(function(){
  $(this).parents('form').submit();
});
3 голосов
/ 14 июля 2010

Вам не нужно ничего делать.Хотя вы можете изменить this.form.submit() на $(this).closest('form').submit(), это не будет иметь никакого эффекта (за исключением того, что оно будет немного менее читабельным), так как все, что будет делать jQuery, будет вызывать this.form.submit().

проблема с отправкой формы из простого JavaScript, у вас все еще будет та же проблема с отправкой формы с помощью jQuery.В чем именно заключается эта проблема?

В любом случае, как правило, вы не должны использовать поля автоматической отправки.Они нарушают доступ к клавиатуре (поскольку IE преждевременно запускает onchange из-за использования клавиатуры) и плохо взаимодействуют с кнопкой «назад».

1 голос
/ 14 июля 2010

такие вопросы всегда запомни меня, как это . почему вы хотите использовать jquery для такой простой вещи? дать name вашему form и сделать document.myform.submit(); (который будет работать в IE3.0 +, FF1.0 +, Safari1.0 +, Opera5.12 +, Konqueror3.1 + ... (как насчет JQuery?)).

0 голосов
/ 14 июля 2010

добавить идентификатор в форму и написать:

$('#formid select[name=qty]').change(function(){
    $('#formid').submit();
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...