3

ユーザーの詳細を更新するために使用しているajaxedモーダルで表示されるフォームがあります。モーダルが読み込まれると、js関数を呼び出します。

teamCreate: function() {
$j("#step1,form#createEditTeam").show();
$j("#step2").hide();
var options = {
 type: "get",
 dataType: 'json',
     beforeSubmit:  before,  // pre-submit callback 
     success:       success  // post-submit callback
  };
$j("form#createEditTeam").ajaxForm(options);

function before(formData, jqForm, options){ 
 var valid = $j("form#createEditTeam").valid();
 if (valid === true) {
  $j(".blockMsg").block({ message: $j('#panelLoader') });
      return true; // submit the form
 } else {
  $j("form#createEditTeam").validate();
  return false; // prevent form from submitting
 }
};

function success(data){
 if (data.status == "success") {
  $j(".blockMsg").unblock();
 } else {
  //
}
};

function error(xhr, ajaxOptions, thrownError){
alert("Error code: " + xhr.statusText);
 };
}

これは、モーダルを開いたり閉じたりする回数に関係なく、最初にフォームを送信したときに問題なく機能します。ただし、フォームを送信してからモーダルを再度開き、フォームをもう一度送信しようとすると、jsエラーが発生します。

h is undefined

4

1 に答える 1

6

これをより迅速にデバッグするには、JQueryライブラリの縮小バージョンをフルバージョンに変更してから、コードを再度実行することを強くお勧めします。縮小バージョンを使用して問題の根本を突き止めるのは難しいでしょうが、フルバージョンを実行しているとデバッグが簡単になることは間違いありません。変数名と関数名の方がはるかに理にかなっています。

于 2010-03-18T02:05:23.653 に答える