jQuery 验证 - 相同的规则取决于值
jQuery Validation - same rule depending on values
我在使用输入字段验证获取 2 个范围值的语法时遇到问题。
我的表单有 2 个 select 字段和一个文本输入字段。
If select1 = 1 and select2 = A
,我希望文本字段上的范围值为 1 to 120
。
If select1 = 1 and select2 = B
,我希望文本字段上的范围值为 121 to 500
。
我的验证码:
PrepurchasePlotNumber: {
digits: true,
required: {
depends: function() {
return ($("input[name=PlotType]:checked").val() == "Prepurchase");
}
},
range: {
param: [1, 120],
depends: function() {
return ($("#PrepurchasePlotArea").val() == "1") && ($("#PrepurchasePlotRow").val() == "A");
}
},
range: {
param: [121, 500],
depends: function() {
return ($("#PrepurchasePlotArea").val() == "1") && ($("#PrepurchasePlotRow").val() == "B");
}
}
},
数字和所需的工作正常。
我无法让我的代码正确地测试这两种范围场景。任何时候只有一个可以工作。
请有人能指出我正确的方向。
Only one will work at any one time.
因为您不能在同一字段上声明两次相同的规则。第二个可能会覆盖第一个。
此外,您使用 depends
编写它的方式是说您只需要满足条件时的 range
规则。
您只需要根据条件使用函数 return
参数。
PrepurchasePlotNumber: {
digits: true,
range: function() {
if (($("#PrepurchasePlotArea").val() == "1") && ($("#PrepurchasePlotRow").val() == "A")) {
return [1, 120]
} else {
return [121, 500]
}
},
....
根据需要修改逻辑。
我在使用输入字段验证获取 2 个范围值的语法时遇到问题。
我的表单有 2 个 select 字段和一个文本输入字段。
If select1 = 1 and select2 = A
,我希望文本字段上的范围值为 1 to 120
。
If select1 = 1 and select2 = B
,我希望文本字段上的范围值为 121 to 500
。
我的验证码:
PrepurchasePlotNumber: {
digits: true,
required: {
depends: function() {
return ($("input[name=PlotType]:checked").val() == "Prepurchase");
}
},
range: {
param: [1, 120],
depends: function() {
return ($("#PrepurchasePlotArea").val() == "1") && ($("#PrepurchasePlotRow").val() == "A");
}
},
range: {
param: [121, 500],
depends: function() {
return ($("#PrepurchasePlotArea").val() == "1") && ($("#PrepurchasePlotRow").val() == "B");
}
}
},
数字和所需的工作正常。 我无法让我的代码正确地测试这两种范围场景。任何时候只有一个可以工作。 请有人能指出我正确的方向。
Only one will work at any one time.
因为您不能在同一字段上声明两次相同的规则。第二个可能会覆盖第一个。
此外,您使用 depends
编写它的方式是说您只需要满足条件时的 range
规则。
您只需要根据条件使用函数 return
参数。
PrepurchasePlotNumber: {
digits: true,
range: function() {
if (($("#PrepurchasePlotArea").val() == "1") && ($("#PrepurchasePlotRow").val() == "A")) {
return [1, 120]
} else {
return [121, 500]
}
},
....
根据需要修改逻辑。