私が話していることの実用的な例については、http://jsfiddle.net/8KNc7/5/を参照してください(現在Firefox 15でテストしていますが、他の人は試していません)。
submit
入力と入力の両方がフォームbutton
データをサーバーに送信するフォームがありますが、入力のみがsubmit
jQuery送信イベントを実行します。どうしてこれなの?
形:
<form action='/echo/html/' method='post' id='Form' name='Form'>
<input type='hidden' value='posted' id='html' name='html'>
<input type='submit' id='submit1' value='submit type'>
<input type='button' id='submit2' value='button type' onclick='submitForm();'>
</form>
Javascript(bodyタグの最後で実行):
var theForm = document.forms['Form'];
if (!theForm) {
theForm = document.Form;
}
function submitForm() {
theForm.submit();
}
$(function () {
$('form').submit(function () {
alert('ok');
});
});
ポイントは、両方のボタンでアラートが発生することを期待していますが、発生するのは1つだけです。submitForm
関数を変更して正しく機能させることができることは知っていますが、これらの一方が機能する理由と機能しない理由の違いを理解しようとしています。