0

これは私のフォームです:

<form name="Aform" method="post" action="test.php" id="Aform">

これは私のスクリプトです:

var validator = $("#Aform").validate({
...
// form.submit();  <-- it works    
form.submit(function() {
$.post($(this).attr("action"), $(this).serialize(), function(data) {
    $.colorbox({html:data});
},
'html');
return false;
});  
// <-- it does not work
4

1 に答える 1

1

JS コンソールを見て、エラーが発生しているかどうかを確認しましたか? POST リクエストが成功し、データが返されることを確認しましたか?

このコードは、送信イベントが発生した場合にのみ実行されるように見えます (コードについての仮定は示されていません)。その後、別のイベント ハンドラーを定義しましたが、submit イベントが再び発生しないため、そのハンドラーは起動されません。

呼び出しform.submit()により送信イベントが発生し、呼び出しform.submit(function(){})によりイベント ハンドラーが定義されますが、送信イベントは発生しません。

イベント ハンドラーを定義した後で呼び出すこともできますがform.submit()、イベント ハンドラーを定義してすぐに呼び出すことは、不要なフープを飛び越えるだけです。代わりにこれを行うことができます:

var validator = $("#Aform").validate({
...
$.post($(this).attr("action"), $(this).serialize(), function(data) {
    $.colorbox({html:data});
},
'html');  
于 2012-07-16T15:32:32.240 に答える