次のようなjspページがあります。
<script type="text/javascript" src="/mywebapp/js/jquery.js"></script>
<script type="text/javascript">
$( function() {
$('#testform').submit(function(){
alert('now starting submit');
return true;
});
$("#test1btn").click(function(){
$('#testform #submit').click();
});
$("#test2btn").click(function(){
$('#testform').submit();
});
});
</script>
<form id="testform" method="post" action="backend/search_test.do">
<input id="reqpagenr" name="reqpagenr" size="10">
<input type="button" id="test1btn" value="TestClick"/>
<input type="button" id="test2btn" value="TestSubmit"/>
<input id="submit" type="submit" value="Go">
</form>
「Go」ボタンを手動で(つまり、マウスを使用して)クリックすると、「現在送信を開始しています」というテキストが表示された後にフォームが送信されます。「TestClick」ボタンをクリックすると、フォームは正常に送信されますが、「現在送信を開始しています」というテキストは表示されません。「TestSubmit」ボタンをクリックすると、「現在送信を開始しています」というテキストが表示されますが、フォームはまったく送信されません。
私の予想に反して、「TestClick」ボタンと「TestSubmit」ボタンは、両方がクリックされたときに「Go」ボタンのように機能しません。私の理解では、ボタンを 3 回クリックしても同じことを行う必要があります。つまり、「現在送信を開始しています」というテキストが表示された後にフォームを送信する必要があります。私の質問は、3 つのボタン クリックの結果が異なるのはなぜですか?
私はjquery 1.3.2を使用しています