jquery - 使用 jQuery 验证插件对 ASP.NET 用户控件中的文本框进行条件验证

标签 jquery asp.net jquery-validate

在我的 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

希望我的问题有意义。 谢谢

最佳答案

您确定这些字段正在返回“”吗?尝试在其中添加警报,以便您可以真正了解其值(value)。

例如。

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

关于jquery - 使用 jQuery 验证插件对 ASP.NET 用户控件中的文本框进行条件验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9724910/

相关文章:

javascript - ASP.NET session 无法自行更新

javascript - 如何将两个范围值相加,然后将其乘以选择标签?

javascript - jQuery tablesorter 子元素禁用排序

Javascript可降解级联下拉列表

jQuery 验证规则 addMethod 中的信用卡到期日限制 future 20 年

javascript - 如何使用 jQuery validate 手动触发验证?

php - 使用 jquery ajax 上传多个图像并使用 php 处理它们

c# - 完成 asp.net web api 2 的 Elmah 日志记录设置

asp.net - 如何从 .net 中完全删除 Oracle Data Provider