пятница, 19 июля 2013 г.

Грабли: form.submit() не работает

Вот такая форма:

По кнопке "Добавить" форма прекрасно отправляется на сервер. На кнопку "Удалить" повешен обработчик:
 jQuery(function(){
  var form = $("form");
  var deleteInput = form.find("[name=delete]");
  var deleteButton = form.find("[name=deleteBtn]");
  
  deleteButton.click(function(ev){
   deleteInput.val("true");
   form.submit();
  });
 });

Всё просто: изменяем значение скрытого поля

на "true" и отправляем форму. Но форма не отправляется! form.submit() не работает.

В отладчике браузера пробую получить из обёрнутого jQuery-набора элемент form и вызвать submit() напрямую у него. Не получается. Странное поведение.
В Watch Expressions вижу:
form[0].submit(): <not available>
Убираю скобки и получаю:
$("form")[0].submit: button.btn

Вот, в чём дело. У кнопки Добавить имя name="submit". Это и приводит к такой мистике.

Изменяю имя кнопки на name="submitBtn". Теперь всё работает.