0

PHPフレームワークによって自動的に開発されたフォームがあります。フォーム入力のカスタム検証を追加し、検証が失敗した場合にフォームを送信できないようにしたいと考えています。

これを行うために、次のスクリプトを作成しました。

$("form.pods-form-pod-katilimci").submit(function(event){
    telefon = $("form.pods-form-pod-katilimci #pods-form-ui-pods-field-oncelikli-telefon");
    email = $("form.pods-form-pod-katilimci #pods-form-ui-pods-field-email");
    if( $.trim(telefon.val()).length == 0 && $.trim(email.val()).length == 0) {
        alert("Size ulaşabilmemiz için eposta adresi veya telefon numaranızdan birisini mutlaka doldurmalısınız.");
        event.preventDefault();
        return false;
    }
});

正常に動作します。問題はない。しかし、フォームを送信すると、自動 ajax 呼び出しがトリガーされ、その呼び出しは私の検証をバイパスします。

したがって、preventDefault()フォームの送信を防ぐことはできません。

Firebug を使用して、どの JavaScript 関数がこの動作を引き起こしているかを調べたいと思います。フォームの html ソースを見ましたが、送信イベントによってトリガーされる機能の明確な兆候はありません。これは ajax 呼び出しであるため、フォーム送信後に Firebug で「Break on Next」を使用してどの関数が呼び出されたかを特定できません。

フォームはこのページにあります: http://www.aep.gov.tr/kullanici-islemleri/uyelik-bilgileri/

フォームの送信後にトリガーされた JavaScript 関数を確認するにはどうすればよいですか。

4

1 に答える 1

0

jquery 検証プラグインの使用を試すことができます。

http://bassistance.de/jquery-plugins/jquery-plugin-validation/

$('#yourformId').validate({
  rules:{
     telefon:{
         required:true
     },
     email:{
         required:true
     }
  }
});

次に、ajax-form プラグインを使用します: http://malsup.com/jquery/form/

そして、このコード:

$('#yourformId').ajaxForm({
   succes:function(response){
      (your code needed for another ajax call)
   }
});
于 2013-01-14T12:03:27.713 に答える