繁体   English   中英

希望防止使用JavaScript的文本框为空

[英]Want to prevent a textbox from becoming empty with 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" />

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

if(target.value == null || target.value === "")
    target.value = 1;
}
  1. keydown时保存文本
  2. keyup时检查为空,如果为空,则恢复保存的文本,否则更新保存的文本。
  3. 您可以尝试使用新的type="number"来强制仅输入数字

看到这个jsfiddle

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM