0

Как говорится в заголовке, у меня возникают проблемы с JQuery Ненавязчивая проверка в javascript в приложении MVC.JQuery Ненавязчивая проверка не срабатывает в MVC

То, что я сделал:

Входы на моей форме были связаны с соответствующими правилами, которые будут проверены в моем обычае JavaScript:

<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 Validation сайте -, проходящий в обработчиках в качестве объекта Javascript для метода $("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(); 
     } 
    }); 

который непосредственно устанавливает неверные и действительные обработчики для механизма проверки ненадежности JQuery в данных формы.

Ни один подход не работает. Я работал над другим сайтом MVC с моей командой до того, как работал этот подход, хотя я не реализовал ненавязчивую проверку - поэтому причина, по которой это не работает, как я реализовал выше, ускользает от меня.

Любые предложения по поводу того, что я, возможно, пропустил?

+0

Немного неуместно - прежде чем я попытался использовать эти подходы (что имеет смысл быть правильным), я только проверил список ошибок для записей. в первый раз я отправлю форму, хотя поля были ошибочными, список ошибок был пуст. сразу же отправив форму во второй раз, она была заполнена и всплывающие подсказки в отображаемом коде – Eon

ответ

0

Простое исправление в моем случае - e.preventDefault необходимо удалить.

Смежные вопросы