我在表单中使用了一个日期选择器,并使用jquery ajax post提交表单。
我有一个隐藏字段RequiredDate,并在datepicker
的change事件中设置它然后我在ajax帖子中使用它
var requiredDate = $("#RequiredDate").val();
我的hiden字段的html是:
<input data-val="true" data-val-required="Please select the required date" id="RequiredDate" name="RequiredDate" type="hidden" value="" />
我允许使用隐藏字段验证:
$.validator.setDefaults({
ignore: "#InternalColourId, #ExternalColourId, #RequiredDate"
});
我希望能够验证是否已选择日期(理想情况下不使用第三方插件)
你能帮忙吗?答案 0 :(得分:0)
不是最干净的方式,但这似乎对我有用
var isFormValid = form.valid();
if (!$("#RequiredDate").val() > 0) {
if (isFormValid)
{
$(".validation-summary-errors ul").empty();
}
if (!$(".date-invalid").length) {
$(".validation-summary-errors ul").append("<li class='date-invalid'>Please Select required date</li>");
}
$(".validation-summary-errors").show();
isFormValid = false;
}
答案 1 :(得分:0)
引用OP :
&#34;我允许隐藏字段验证使用:&#34;
ignore: "#InternalColourId, #ExternalColourId, #RequiredDate"
不,你不是。你做的正好与#34;允许&#34;。
完全相反 ignore: "#RequiredDate"
正是它所说的......在验证过程中 被忽略 。
由于默认情况下会忽略所有隐藏字段,因此您必须禁用 ignore
选项,如此...
ignore: [] // <- Set 'ignore' to nothing - allows validation of hidden fields
或者,ignore
中的任何其他特定参数也将覆盖默认设置以忽略隐藏字段。换句话说,如果您设置ignore: ".ignore"
,那么将跳过仅包含<{1}}类的字段。