Javascript jquery验证:如果有条件需要,则应用自定义方法
我的表单中有三个字段:状态、询问日期和预期日期 如果我的状态=A,我希望验证中需要我的预期日期 此外,我希望我的预期验证日期始终大于询问日期 这是我的规则Javascript jquery验证:如果有条件需要,则应用自定义方法,javascript,jquery,jquery-validate,Javascript,Jquery,Jquery Validate,我的表单中有三个字段:状态、询问日期和预期日期 如果我的状态=A,我希望验证中需要我的预期日期 此外,我希望我的预期验证日期始终大于询问日期 这是我的规则 rules: { status: { required: true, }, ask_date: { required: true, date:true, }, expected_date: { required: fu
rules: {
status: {
required: true,
},
ask_date: {
required: true,
date:true,
},
expected_date: {
required: function(element){
if($('#status').val()=='A'){
return true;
} else {
return false;
}
},
greaterThan: "#ask_date",
date:true,
},
我怎么能说只有当字段满足所需条件时才调用greaterThan方法呢
“greaterThan”是我在这里从一个单独的堆栈溢出中使用的自定义jquery验证方法
“仅当字段满足必需的
条件时,我如何说调用greaterThan
方法?”
由于在这些条件下,该字段仅是必需的
,因此理想情况下,当该字段留空时,不应触发任何其他规则。但是,自定义方法中缺少一个片段,该片段允许在字段留空时忽略它
根据条件测试,this.optional(element)
,将确保您的自定义规则不会在空白字段上强制执行
jQuery.validator.addMethod("greaterThan", function(value, element, params) {
if (this.optional(element)) { // "required" not in force and field is empty
return true;
} else { // otherwise, use your rule
if (!/Invalid|NaN/.test(new Date(value))) {
return new Date(value) > new Date($(params).val());
}
return isNaN(value) && isNaN($(params).val()) || (Number(value) > Number($(params).val()));
}
},'Must be greater than {0}.');
@哇,你有足够的声誉,已经知道我们不允许在评论中提问/回答问题。
jQuery.validator.addMethod("greaterThan", function(value, element, params) {
if (this.optional(element)) { // "required" not in force and field is empty
return true;
} else { // otherwise, use your rule
if (!/Invalid|NaN/.test(new Date(value))) {
return new Date(value) > new Date($(params).val());
}
return isNaN(value) && isNaN($(params).val()) || (Number(value) > Number($(params).val()));
}
},'Must be greater than {0}.');