我的页面中有两个数字文本字段,例如field1和field2。 field1范围介于1和12之间。当field1值为1时,只允许用户在field2中输入值。 field2范围再次介于1和12之间。
我想根据field1的值添加field2的范围验证。无论如何我可以添加像这样的jQuery函数。
field2: {
range: function(){
if($("#field1").val() == 1){
return "[1,12]";
}
}
}
另外,当field1值不为1时,如何限制用户输入field2中的任何值。
答案 0 :(得分:0)
你可能会看看像Knockout或Angular这样的双向绑定库,具体取决于你的实际应用程序的重量。要使用vanilla Javascript或jQuery,您需要将事件处理程序绑定到输入元素并根据需要修改其属性,如:
$("#field1").on("input", function() {
$("#field2").prop("disabled", this.value != 1); // or readonly
});
如果你想发布你的HTML并扩展你想要它做什么,我可以搞砸了。
答案 1 :(得分:0)
如果您修复了三个小错误,您的代码应该正常工作......
使用.val()
,而不是.val
使用return [1, 12]
,而不是"return [1, 12]"
使用$('[name="field1"]')
,而不是$("#field2")
。您无法将字段的值与自身进行比较。也许只是一个错字。
jQuery :
$(document).ready(function () {
$('#myform').validate({
rules: {
field1: {
required: true
},
field2: {
required: true,
range: function () {
if ($('[name="field1"]').val() == 1) {
return [1, 12];
}
}
}
}
});
});
<强> HTML 强>:
<form id="myform">
<input type="text" name="field1" />
<br/>
<input type="text" name="field2" />
<br />
<input type="submit" />
</form>