0

可能重复:
使用 jquery 禁用文本框?

如何防止在document.getElementsByName(). 有一个这样的选项。

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。警报出现并且文本框被禁用,所以我什至无法在文本框中重新输入正确的值。如何恢复我的文本框的默认值。?

4

2 回答 2

1

就像发布的 adamb 一样,您可以禁用输入。另一种方法是在输入上设置一个属性(可能 defaultval='the default')并用该defaultval属性替换输入的值。

在您的示例中,您的客户最好将输入实际设置为限制。例如,你的条件是 100 是最大值,所以如果有人输入一个更大的数字,比如 200,它会将框更改为可能的最大值,即 100。

于 2012-11-01T16:05:43.973 回答
1

您可以将原始值存储在变量或隐藏字段中,然后在更新失败时替换该值。如果页面加载时范围是已知的,则可以使用范围验证。

对于模糊验证,警报通常过于突兀。

于 2012-11-01T16:11:39.090 回答