2017-05-08 5 views
0

"email:true"を使用して入力の有効な電子メールアドレスをシステムがテストできるようにするためのコードです。それがすでに入力をテスト、まだ保存ボタンをクリックせずに単一の文字を入力すると、ただし、次のもので、保存ボタンをクリックした後、最初の試みで動作し、エラーメッセージすでに有効な電子メールアドレスをテストするためのjavascript

$("#RoleConfigForm").validate({ 
      rules: { 

       "group_code[]": { 
        required: true, 
        maxlength: 25, 
       }, 
       "role_name[]": { 
        required: true, 
        maxlength: 25, 
       }, 

       "email_address[]": { 
        required: true, 
        email: true, 
        maxlength: 30, 


       }, 
      }, 
      errorClass: "invalid", 
      errorPlacement: function (error, element) { 
       $('#ResultDialog p').html("@hmis_resources.Message.msg_empty_fields"); 
       $('#ResultDialog').modal(); 
      }, 
      submitHandler: function (form) { 
       ajaxFormSubmit(); 
      } 
     }); 
+1

これはjquery validateの動作です。電子メールが正しくないときは、エラーメッセージ –

+0

が表示されます。これを修正する方法はありますか? – rickyProgrammer

答えて

1

「レイジーを示し"対"熱心な "検証。

jQuery Validateは「レイジー」なので、通常のデフォルト動作です。

As per the docs here:デフォルトでは

は、フォームはユーザーsubmitボタンをクリックするか、フォーム入力がフォーカスされたときに押下する(オプションのonSubmit)によってトリガ、提出に検証されます。また、フィールドが無効であると強調表示されると、ユーザーがフィールドに何かを入力するたびに検証されます(オプションonkeyup)。ユーザーが無効なフィールドを有効なフィールドに入力すると、フィールドがフォーカスを失ったときにも有効となります(オプションonbluronfocusout)。

And here:フィールドは無効としてマークされ

  • 前に、検証は怠惰です:最初に、ユーザーがフォームを送信する前にすることができます迷惑なメッセージを取得せずにフィールドをタブ - 実際に正しい値を入力するチャンスを得る前に、盗聴されることはありません。

EDIT

ボタンがクリックされたときに完全に...

$('#myform').validate({ 
    onkeyup: false, 
    onfocusout: false, 
    .... 

フォームのみ検証しますkeyUpイベントとのonblur検証を無効にします。

+0

これを防ぐには回避策がありますか? – rickyProgrammer

+0

@rickyProgrammer、編集された解答を参照してください。 – Sparky

+0

onkeyup:false作品!ありがとう! – rickyProgrammer

関連する問題