0

제목에서 알 수 있듯이 Javascript에서 MVC 응용 프로그램의 Javascript에서 눈에 띄지 않는 유효성 검사와 관련된 문제가 있습니다.Jquery MVC에서 눈에 거슬리지 않는 유효성 검사가 실행되지 않음

은 내가 무슨 짓을 :

은 내 양식에

입력은 내 사용자 지정 자바 스크립트에서 확인됩니다 적절한 규칙을 바인딩되었습니다

<input type="text" class="form-control" name="rates_taxes" id="rates_taxes" data-val='true' data-val-ispositive="You must enter a positive value here or 0" data-val-isnumeric="You must enter a numerical value here. (e.g 250000)" required> 

    ... 
    jQuery.validator.addMethod('isnumeric', function (value) { 
     return $.isNumeric(value); 
    }, ''); 

    jQuery.validator.unobtrusive.adapters.add('isnumeric', function (options) { 
     options.rules['isnumeric'] = {}; 
     options.messages['isnumeric'] = options.message; 
    }); 

가 여기에 표시하지, 나는 ISNUMERIC 방법 것을 테스트 한 사용자가 입력을 입력하거나 양식을 제출할 때 입력됩니다.

문제는 양식 제출 문제입니다. InvalidHandler와 SubmitHandler의 두 이벤트는 단순히 실행되지 않습니다.

나는 JQuery와 유효성 사이트에 방법을 사용하여 구현 한 - 그것은 지금은이 방법이

을 발생하지 않았다 - $("form").validate({ invalidHander: function(e, validator){ ... }); 방법에 자바 스크립트 객체로 핸들러를 전달한다 :

 $(document).on("click", "button[type='submit']", function (e) { 
     if ($(e.target).data("customValidate") === true) { 
      e.preventDefault(); 
      var form = $(e.target).parents("form"); 

      $(form).data("validator").settings.submitHandler = function (formhandler) { 
       alert('submit'); 
       formhandler.submit(); 
      }; // <---- 

      $(form).data("validator").settings.invalidHandler = function (e, validator) { 
       alert('error'); 
       for (var i = 0; i < validator.errorList.length; i++) { 
        var element = '#' + validator.errorList[i].element.name; 
        var error = validator.errorList[i].message; 
        if (!error || error === "undefined") { 
         error = "This field is required."; 
        } 
        $(element).prop('title', error); 
        $(element).data('placement', 'right'); 
        $(element).data('toggle', 'tooltip').tooltip('show'); 
       } 
      }; // <---- 

      $(form).validate(); 
     } 
    }); 

폼의 데이터에서 Jubery Unobtrusive Validation Engine에 대한 유효하지 않은 유효한 핸들러를 직접 설정하고있는 것은 어느 것입니까?

어느 방법으로도 작동하지 않습니다. 나는이 방법이 어디에서 작동했는지에 관해서는 전에 내 팀과 함께 다른 MVC 사이트에서 일했다. 그러나 나는 눈에 거슬리지 않는 유효성 검사를 구현하지 않았다. 그래서 위에서 구현 한 것처럼 작동하지 않는다.

무엇을 놓쳤을 지에 대한 제안이 있으십니까?

+0

약간의 관련성이 없음 -이 접근법을 시도하기 전에 (올바른 것으로 이해할 수 있음) 항목에 대한 오류 목록 만 검사했습니다. 처음 양식을 제출하면 필드가 잘못되었지만 오류 목록이 비어 있습니다. 즉시 두 번째 양식을 제출하면 코드가 채워지고 코드의 툴팁이 표시됩니다. – Eon

답변

0

제 경우의 간단한 수정 - e.preventDefault를 제거해야했습니다.