Проблема в том, что вы дали вашей кнопке отправки имя «отправить». Измените это на что-нибудь еще, и это будет работать. (Также измените id
, лучше оставить их прежними, не в последнюю очередь из-за некоторых проблем с браузером .)
Почему: элементы формы имеют свойство с именем submit
, которое вы можете вызывать для их отправки. (jQuery использует это под прикрытием, когда вы вызываете submit
в экземпляре jQuery.) Но элементы формы также получают свойства для каждого из полей формы, используя имя поля, и поэтому, если у вас есть поле «submit», оно переопределяет функцию submit
, что означает, что вы не можете отправить форму программно.
Рабочий пример: Живая копия | Живой источник
<script type="text/javascript">
$(document).ready(function(){
$(document).click(function() {
$('#inputform').submit();
});
$("#inputform").submit(function() {
alert('test');
return true;
});
});
</script>
<form method="GET" action="http://jsbin.com/uwuzon" id="inputform">
<input type="text" name="foo" value="bar">
<button type="submit" name="someOtherName" id="someOtherName">Submit form</button>
</form>
(Значительное изменение - это часть name="someOtherName" id="someOtherName"
. Другие изменения [изменение действия и метода формы] относятся только к JSbin.)
Примечание: Вам не нужно return true;
в обработчике submit
, чтобы разрешить отправку формы. Вы просто должны не return false;
. : -)