gpt4 book ai didi

jquery验证添加规则

转载 作者:行者123 更新时间:2023-12-01 01:34:48 25 4
gpt4 key购买 nike

我正在使用jquery中的验证插件。有一个很奇怪的事情是,当我这样添加规则时

$(document).ready(function () {
$.validator.addMethod("endDateGreaterThan", function (value, element, params) {
if (value != "" && $(params).val() != "") {
var endDate = formatValidateDate(value);
var startDate = formatValidateDate($(params).val());
if (startDate == null || endDate == null)
return true;
return new Date(endDate) >= new Date(startDate);
}
return true;
}, "");

var validator = $("#form").validate({
rules: {
StartDate: "required",
EndDate: {
required: true,
endDateGreaterThan: "#StartDate"
},
DiscountRate: {
required: true,
max: 100,
min: 1
}
},
messages: {
StartDate: {
required: "ErrorMessageStartDateRequired"
},
EndDate: {
required: "ErrorMessageEndDateRequired",
endDateGreaterThan: "ErrorMessageEndDateGreaterThanStartDate"
},
DiscountRate: {
required: "ErrorMessageDiscountRateRequired",
max: "Global.ErrorMessageDiscountRateRange",
min: "Global.ErrorMessageDiscountRateRange"
}
}
});

没有添加规则。如果我调试js文件并进入jquery.validation.js文件中的validate方法,我发现传递给validate方法的选项为空。

但是如果我动态添加规则,就像

$("#StartDate").rules("add", {
required: true,
messages: {
required: "StartDate is required"
}
});

规则将按其应有的样子添加。

我正在使用 ASP.net mvc。

如有任何建议,我们将不胜感激。

最佳答案

您的 html 很可能是错误的。您在验证代码中引用的每个输入都必须具有 name 属性。所以这是错误的:

<input type="text" id="StartDate" />

这是正确的:

<input type="text" name="StartDate" id="StartDate" />

请参阅documentation :

The name attribute is '''required''' for input elements, the validation plugin doesn't work without it. Usually name and id attributes should have the same value.

关于jquery验证添加规则,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16931193/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com