2012-03-10 7 views
0

フォームの検証にJqueryの検証関数を使用しています。これまでは、エラーメッセージをページ要素に追加していましたが、今は警告ポップアップで表示したいと考えています。 ユーザーが何も選択していないときに警告メッセージが正常に表示されますが、有効なフォームを送信したときにポップが表示されます(今回はエラーメッセージなし)。アラートポップアップによるJQueryフォームの検証 - アラートが有効なサブミットでまだ表示されています

有効なフォーム送信後にポップアップが表示されないようにするにはどうすればよいですか?

ここで私のjsコードです。ラジオボタンのアラートを実装しました。あなたはそれがerrorPlacementは関係なく、実際のエラーの実行されていることだろうhttp://hiplogger.hip-zone.co.za/partner/mobile

$("#quickieform").validate({ 
    rules: { 
     answer: "required" 
    }, 
    answer: { 
     answer: "Please make a selection" 
    }, 
    errorPlacement: function(error, element) { 
     if (element.is(":radio")) 
      alert(error.html()); 

     else if (element.is(":checkbox")) 
      error.appendTo(("#alertbox")); 

     else 
      error.appendTo(("#alertbox")); 
    }, 
    submitHandler: function(form) { 
     // do other stuff for a valid form 
     form.submit(); 
    }, 
    success: function(label) { 
     // set as text for IE 
     label.html(" ").addClass("checked"); 
    } 
}); 

答えて

0

にこの動作を確認することができます。 $("#quickieform").valid()を実行すると、検証が実行されるため、警告が表示され、trueが返されるため、このような場合があります。アラートに実際のエラーメッセージが表示されませんでした。またerror.html != ""

if (element.is(":radio") && error.html != "") 

ホープ、このことができますことを確認するために

$("#quickieform").validate({ 
    rules: ... 
    answer: ... 
    invalidHandler: function(form, validator) { 
     var errors = validator.numberOfInvalids(); 
     if (errors) { 
     alert("You have " + error + " errors that need to be fixed"); 
     } 
    } 
    ... 
}) 

のか、単にあなたのerrorPlacementを変更する:あなたはinvalidHandler関数にそれを移動することもできます!

0

ご回答いただきありがとうございます。私はそれを働かせましたが、私はなぜそれが働いているのか分かりません。私がしたのは、最後の「成功:」セクションを取り除くことだったので、私のコードはこのようになりました...

$("#quickieform").validate({ 
    rules: { 
      answer: "required" 
     }, 
    invalidHandler: function(form, validator) { 

    }, 
    errorPlacement: function(error, element) { 
     if (element.is(":radio") && error.html != "") 
      // error.appendTo(("#alertbox")); 
      alert(error.html()); 

     else if (element.is(":checkbox")) 
      // error.appendTo(("#alertbox")); 
     alert(error.html()); 

     else 
      error.appendTo(("#alertbox")); 
    }, 
    submitHandler: function(form) { 
      form.submit(); 
    } 

}) 
関連する問題