0

所以我已经有一个文本框,您只能在其中输入数字,并且它们必须在一定范围内。文本框默认为 1,我想阻止用户将其设为空白。有什么想法吗?干杯

                    <SCRIPT language=Javascript>

       window.addEventListener("load", function () {
        document.getElementById("quantity").addEventListener("keyup", function (evt) {
            var target = evt.target;

             target.value = target.value.replace(/[^\d]/, "");
              if (parseInt(target.value, 10) > <%=dvd5.getQuantityInStock()%>) {
                target.value = target.value.slice(0, target.value.length - 1);
           }
        }, false);
              });


               <form action="RegServlet"  method="post"><p>Enter quantity you would  like to purchase :
<input name="quantity" id="quantity" size=15 type="text" value="1" />

4

3 回答 3

1

您可以使用onkeyup侦听器检查输入的值是否为空。类似于以下内容:

if(target.value == null || target.value === "")
    target.value = 1;
}
于 2013-05-03T01:46:37.617 回答
1

当文本框失去焦点时,您可以添加一个函数来验证表单。我在http://forums.asp.net/t/1660697.aspx/1移植了以下代码,但尚未经过测试:

document.getELementById("quantity").onblur = function validate() {
    if (document.getElementById("quantity").value == "") {
            alert("Quantity can not be blank");
            document.getElementById("quantity").focus();
        return false;
    }
    return true;
}
于 2013-05-03T01:49:01.600 回答
0
  1. 保存文本时keydown
  2. 时检查空keyup,如果为空,则恢复保存的文本,否则更新保存的文本。
  3. 你可以尝试新type="number"的强制只输入数字

看到这个jsfiddle

于 2013-05-03T01:48:07.003 回答