Условная проверка текстовых полей в пользовательском элементе управления ASP.NET с использованием плагина проверки jQuery. - PullRequest
2 голосов
/ 15 марта 2012

В моем пользовательском элементе управления ASP.NET у меня есть 3 текстовых поля, которые я проверяю с помощью jQuery, но у меня возникают некоторые проблемы с получением проверки, чтобы функционировать так, как мне нужно.Текстовые поля предназначены для имени, фамилии и названия компании, и я хотел бы, чтобы при вводе имени и фамилии название компании больше не требовалось.Если имя компании было введено, имя и фамилия больше не требуются.

У меня оно частично работает, но проблема в том, что при заполнении текстовых полей имени и фамилии название компании по-прежнему отображается кактребуется, и то же самое происходит, когда название компании заполняется, имя и фамилия по-прежнему отображаются как обязательные.Я в растерянности относительно того, как я могу достичь того, что я изложил выше, я довольно плохо знаком с jquery, который тоже не помогает.Вот мой код:

$(document).ready(function () {

var firstNameCtrl = $('#<%= addressInfo.FirstNameClientID %>');
var lastNameCtrl = $('#<%= addressInfo.LastNameClientID %>');
var companyNameCtrl = $('#<%= addressInfo.CompanyClientID %>');
firstNameCtrl.focus();

$('form').validate({
    highlight: function (element, errorClass) {
        $(element).addClass("invalidElem");
    },
    unhighlight: function (element, errorClass) {
        $(element).removeClass("invalidElem");
    },
    errorElement: "div",
    errorClass: "errorMsg"
});

$.validator.addClassRules({
    nameValidation: {
        required: {
            depends: function (element) {
                return ($(companyNameCtrl).val() == '');
            } //end depends    
        } //end required
    }, //end nameValidation
    companyValidation: {
        required: {
            depends: function (element) {
                return ($(firstNameCtrl).val() == '' &&
                        $(lastNameCtrl).val() == '');
            }
        }
    }
})

$(firstNameCtrl).add(lastNameCtrl).add(companyNameCtrl).addClass("nameValidation").change(function (e) {
        $('form').validate().element($(e.target));
});
$(companyNameCtrl).addClass("companyValidation").change(function (e) {
    $('form').validate().element($(e.target));
});
}); //end ready

Надеюсь, мой вопрос имеет смысл.Спасибо

1 Ответ

0 голосов
/ 11 июля 2012

Вы точно знаете, что поля возвращаются ''.Попробуйте поместить предупреждение там, чтобы вы могли действительно увидеть, какова ценность.

Например.

$.validator.addClassRules({
nameValidation: {
    required: {
        depends: function (element) {
            alert($(companyNameCtrl).val());
            return ($(companyNameCtrl).val() == '');
        } //end depends    
    } //end required
}, //end nameValidation
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...