如何防止使用document.getElementsByName()
中的jquery更改文本框值。
有这样的选项。
document.getElementById("Quantity").defaultValue;
是否有任何选项可以阻止我的文本框的值在document.getElementsByName()
中更改。
在我的警报之后,我想在条件不匹配时使文本框的值保持不变。
我的代码:
$(function () {
$('input[name=Quantity]').blur(allownumbers);
});
function allownumbers() {
var elements = document.getElementsByName('Quantity');
for (var i = 0; i < elements.length; i++) {
if (elements[i].value == '' || elements[i].value < 1) {
alert('Please enter a valid value');
return false;
}
else if (elements[i].value > 100) {
alert('There is no enough inventory for this product to fulfill your order');
return false;
}
}
return true;
}
<input id="Quantity" type="text" name="Quantity"/>
任何建议。
编辑: 我尝试使用此代码。
$("#textbox1").removeAttr("disabled");
如果我输入200.警报出现并且文本框被禁用,因此我甚至无法在文本框中重新输入正确的值。如何恢复文本框的默认值。 ?
答案 0 :(得分:1)
就像adamb发布的那样,你可以禁用输入。另一种方法是在输入上设置属性(可能是defaultval ='默认值'),并用defaultval
属性替换输入值。
在您的示例中,您的客户最好将输入实际设置为限制。例如,你的条件是100是最大值,所以如果有人输入一个更大的数字,比如200,它会将盒子改为最大值,100。
答案 1 :(得分:1)
您将原始值存储在变量或隐藏字段中,然后在更新失败时替换该值。如果在页面加载时已知范围,则可以使用范围验证。
对于模糊验证,警报通常过于突兀。