所以我已经有了一个文本框,你只能输入数字,它们必须在一定的范围内。文本框默认为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" />
答案 0 :(得分:0)
您可以使用onkeyup
侦听器检查输入的值是否为空。有点像:
if(target.value == null || target.value === "")
target.value = 1;
}
答案 1 :(得分:0)
keydown
keyup
时检查为空,如果为空,则恢复已保存的文本,否则更新已保存的文本。type="number"
来强制执行号码输入请参阅此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;
}