2017-05-08 3 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 유효성 검사의 동작입니다. 이메일이 정확하지 않을 때까지 오류 메시지 –

+0

이이를 해결할 수있는 방법이 있습니까? – rickyProgrammer

답변

1

"게으른을 보여줍니다 "대"열심히 "검증.

jQuery 유효성 검사는 "게으른"것이므로 관찰하는 것은 정상적인 기본 동작입니다.

As per the docs here

: 기본적으로

는 형태에 검증 된 버튼을 제출하거나 양식 입력 (옵션 onsubmit)에 집중 될 때 키를 누르면 입력을 클릭 사용자에 의해 트리거 제출합니다. 또한 필드가 잘못된 것으로 강조 표시되면 사용자가 필드에 값을 입력 할 때마다 유효성이 검사됩니다 (옵션 onkeyup). 사용자가 유효한 필드에 무언가를 입력하면 필드가 포커스를 잃을 때 유효성이 검사됩니다 (옵션 onbluronfocusout).

And here : 필드가 유효하지 않은 것으로 표시됩니다

  • 전에 검증은 게으른입니다 : 처음으로, 사용자가 양식을 제출하기 전에 할 수있는 성가신 메시지를받지 않고 필드를 통해 탭 - 실제로 올바른 값을 입력 할 기회가 있기 전에 도청 당하지 않을 것입니다.

편집 :

가의 keyup 전적으로 위해 onblur 검증을하지 않으려면 ... 버튼을 클릭하면

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

양식은 유효성을 검사합니다.

+0

이 문제를 방지하려면 해결 방법이 있습니까? – rickyProgrammer

+0

@rickyProgrammer, 수정 된 답변 참조. – Sparky

+0

onkeyup : false 작품! 감사! – rickyProgrammer