我已经验证了一个文本框来接受maxsize=2,它接受2位数,例如11,12.但它不接受数字10。
这是我的密码
<td width="60" height="20" class="case_txt" align="center">
<input type="text" onblur="CheckUnitValue(this)"
name="Units_<%=cptData.Rows[k]["SERVICEID"] %>"
value="<%=cptData.Rows[k]["NOOFUNITS"] %>"
size="5" maxlength="2" onkeypress="onlyPositiveNumbers(this)" />
</td>发布于 2015-09-17 14:23:06
如果您使用的是现代浏览器,您可以像安迪所说的那样使用<input type="number" min="1" max="99"/>。
对于不支持input type="number"的浏览器,您可以这样更正脚本。
<html>
<head>
<title>test</title>
<script>
function validateRange(element) {
value = +element.value;
min = element.getAttribute('min');
max = element.getAttribute('max');
if (isNaN(value) || value < min || value > max) {
element.value = '';
}
else
{
element.value = value;
}
}
</script>
</head>
<body>
<input type="number" min="1" max="99" />
<input type="text" maxlength="2" min="1" max="99" onblur="validateRange(this)" />
</body>
</html>注意:
onkeypress上使用onblure,例如当用户将文本粘贴到字段中时。min和max在textbox上,以保持validateRange功能更可重用。发布于 2015-09-17 07:54:07
看起来你把简单的事情搞得太复杂了。
如果您需要这个文本框只接受两位数的正数,那么您可以使用type="number"而不是type="text",并为有效值设置限制。
就像这样:
<input type="number" min="1" max="99"/>非常简单,您不需要使用javascript进行任何自定义验证(我真的认为您的onlyPositiveNumbers函数有一些错误,正如我在评论中所说的)。
https://stackoverflow.com/questions/32624657
复制相似问题