想要使用javascript防止文本框变空

时间:2013-05-03 01:39:01

标签: javascript

所以我已经有了一个文本框,你只能输入数字,它们必须在一定的范围内。文本框默认为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" />

3 个答案:

答案 0 :(得分:0)

您可以使用onkeyup侦听器检查输入的值是否为空。有点像:

if(target.value == null || target.value === "")
    target.value = 1;
}

答案 1 :(得分:0)

  1. keydown
  2. 时保存文字
  3. keyup时检查为空,如果为空,则恢复已保存的文本,否则更新已保存的文本。
  4. 您可以尝试使用新的type="number"来强制执行号码输入
  5. 请参阅此jsfiddle

答案 2 :(得分:0)

当文本框失去焦点时,您可以添加一个函数来验证表单。我在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;
}