Использование пользовательского валидатора в списке переменной длины в Microsoft MVC 2 (проверка на стороне клиента вопросов)

Я создал список переменной длины в соответствии со многими замечательными сообщениями Стива Сандерсона о том, как это сделать в MVC 2. В его блоге есть много отличных учебных пособий.

Затем я создал пользовательский условный валидатор «requiredif», следуя этому обзору http://blogs.msdn.com/b/simonince/archive/2010/06/11/adding-client-side-script-to-an -mvc-условно-валидатор. aspx

Я использовал обработчик проверки JQuery из записи блога MSDN, который добавляет в файл conditional-validators.js следующее, которое я включаю в сценарии своей страницы:

(function ($) {
    $.validator.addMethod('requiredif', function (value, element, parameters) {
        var id = '#' + parameters['dependentProperty'];

        // Get the target value (as a string, as that's what actual value will be)
        var targetvalue = parameters['targetValue'];
        targetvalue = (targetvalue == null ? '' : targetvalue).toString().toLowerCase();

        // Get the actual value of the target control
        var actualvalue = ($(id).val() == null ? '' : $(id).val()).toLowerCase();

        // If the condition is true, reuse the existing required field validator functionality
        if (targetvalue === actualvalue)
            return $.validator.methods.required.call(this, value, element, parameters);

        return true;
    });
})(jQuery);

Увы, это не вызывает запуск проверки на стороне клиента. .. запускается только проверка на стороне сервера. Присущие «требуемые» валидаторы действительно запускают на стороне клиента, что означает, что мой скрипт правильно настроен на базовую валидацию. Кто-нибудь выполнил пользовательские валидаторы в списке переменной длины в MVC 2, используя JQuery в качестве метода проверки на стороне клиента?

ОТМЕТЬТЕ, что этот же пользовательский валидатор работает на стороне клиента, используя точно такую ​​же настройку в списке не переменной длины .

1
задан Jon J 30 August 2010 в 03:40
поделиться