【发布时间】:2013-06-28 08:38:05
【问题描述】:
我的网站上正在运行以下脚本。用户必须输入 10 个字符长的“testnumber”。有一个长度检查验证。当用户点击提交按钮时,我的脚本运行顺畅。
但问题是当用户按下回车键而不是鼠标点击时,它不会警告用户。我该如何更改它,以便当用户按下回车键时,此脚本将给出与单击提交按钮相同的消息?
<script type="text/javascript">
function isNumber(n) {
return !isNaN(parseFloat(n)) && isFinite(n);
}
function formvalidation(form) {
var isSubmitting = false;
var value = document.getElementById('testnumber').value;
if (value.length == 10) {
if (isNumber(value)) {
isSubmitting = true;
}
}
if (isSubmitting) {
form.submit();
}
else {
alert('testnumber must be at least 10 character.');
return false;
}
}
</script>
这是html代码的一部分:
<tr>
<td align="center">
<label>
<div align="left">
<span class="text7"><strong>enter testnumber:</strong></span>
<input name="testnumber" type="text" id="testnumber" size="50" value="<%=(testnumber)%>" />
<input name="search" id="search" type="button" class="normalmail" value="Search" onclick="formvalidation(frmSearch);" />
</div>
</label>
</td>
</tr>
【问题讨论】:
-
您在提交按钮上有监听器吗?如果用户点击回车,它不会模拟提交按钮上的点击,而是会提交表单本身。
-
添加一个
submit事件处理程序,也:尝试return !!(n == +(n));作为您的isNumber函数 -
也分享你的html代码
-
您在哪个事件上调用此函数“formvalidation”?请尝试将其放在表单的 onsubmit 事件中。
-
另外,尝试使用正则表达式进行验证:
return value.match(/^\d+{10}$/)
标签: javascript validation enter