1

MVC 4에서 눈에 거슬리지 않는 폼 유효성 검사를 수행하고 있으며 페이지가 아닌 팝업에 오류를 표시하려고합니다. showErrors 및 invalidHandler 옵션을 테스트하지만 이벤트가 실행되지 않습니다. jQuery 유효성 검사 옵션이 적용되지 않음 - MVC4

페이지가이 JS 준비

은 발리

$("form").validate({ 
    showErrors: function (errorMap, errorList) { 
     console.warn(errorList); 
    }, 
    invalidHandler: function (event, validator) { 
     alert('test'); 
    } 
}); 

사용자가 클릭이 검증이 발생하고 오류가 페이지에 표시됩니다하지만 브라우저 콘솔에 아무것도 표시되지 않으며 제출 초기화하는 호출입니다 경고 팝업.

유효성 검사기를 검사 할 때 showErrors 및 invalidHandler에는 기본값이 있으므로 설정이 적용되지 않았 음을 알 수 있습니다.

$('form').validate().settings 

도움주세요.

답변

1

나는 jquery 팝업에서 js 팝업 클래스를 추가하고 유효하지 않은 요소에만 추가하는 것과 비슷한 요구 사항을 한 번 가지고있었습니다.

errorPlacement 메서드를 참조하면 요소 및 오류 변수를 사용할 수 있습니다. 거기에 요소에 팝업 js 클래스를 추가 할 수 있습니다. errorPlacement 메서드는 작성한 유효성 검사 규칙에 따라 유효하지 않은 요소에 대해서만 호출되며 여기서 인라인 유효성 검사 메시지가 나타나는 위치와 팝업 메시지가 나타나는 위치를 제어 할 수 있습니다.

+1

내가 $의 .validator이 페이지가 다음 초기화 threfore 준비되기 전에 MVC에 의해 호출 생각 부분보기에서 $().ready 블록이 스크립트를 넣을 수 있습니다 //이 양식의 유효성 검사기가 이미 생성되었는지 확인하십시오. \t \t var validator = $ .data (this [0], 'validator'); \t \t if (validator) { \t \t \t return validator; \t \t 일단 유효성 검사기 옵션이 초기화되면 – user1791567

+0

@ user1791567으로 바꿀 수 없습니다. '.validate()'를 다시 호출하여 옵션을 변경할 수 없습니다. 내가 본 것에서 MVC를 사용하는 다른 사람들은 setdefaults 메소드를 사용한다. docs를 참조하십시오. – Sparky

0

그래서 내 문제를 해결하는 방법입니다.

MVC가 내 앞에 유효성 검사기를 호출하고있는 것을 알았습니다. 새 옵션으로 다시 호출하면 플러그인이 유효성 검사기를 반환하므로 유효성 검사기 설정에 적용되지 않습니다. 또한 모든 유효성 검사기에 내 설정을 적용하고 싶지 않으므로 여기에 있습니다. JQuery와 유효성 검사 플러그인으로 무시 다음 줄을 가지고

//-- Validator settings. At this point this validator is already created (for me) 
var $vlt = $('form').validate(); // Get validator 

var options = { //-- new options 
      onfocusout: false, 
      onkeyup: false, 
      onclick: false,    
      showErrors: function (errorMap, errorList) { 
       console.warn(errorList); 
    } 
}; 

$vlt.settings = $.extend(true, {}, $vlt.settings, options); // apply options 

내가

관련 문제