Javascript验证-如何检查表单中输入的数字是否在一定范围内
Javascript Validation - How do I check that the number entered into a form is between a certain range?
我有一部分html代码:
<tr>
<td id="examnumber">Examination number</td>
</tr>
<tr>
<td><input type="text" name="examnumber"/></td>
</tr>
我需要输入的数字是4位数字,长度在0000-9999之间。我试图通过使用以下javascript代码来验证它:
function validateForm() {
var result = true;
var msg="";
if (document.ExamEntry.examnumber.value=="") {
msg+="You must enter your examination number. 'n";
document.ExamEntry.examnumber.focus();
document.getElementById('examnumber').style.color="red";
} else if ((document.ExamEntry.examnumber.value.length < 0) || (document.ExamEntry.examnumber.value.length > 9999)) {
msg+= "The examination number is not within the range 0000-9999.'n";
result = false
}
if (document.ExamEntry.examnumber.value.length!=4) {
msg+="Your examination number must be 4 digits long. 'n";
document.ExamEntry.examnumber.focus();
document.getElementById('examnumber').style.color="red";
result = false;
}
然而,当我通过输入-900或3.45来测试代码时,它不会出现错误消息,并表示信息输入正确。如果有人能帮我纠正这个错误,我将不胜感激。
这里的主要问题是字段名为examnumber
,您正试图通过表单名称(可能是ExamEntry
)来获得它。以这种方式获取对该字段的引用(document.Form_Name.Field_Name
)已经过时,而且只有在Internet Explorer上才真正起作用。
更通用的方法是使用document.getElementById
。
你正在使用这个,在这行:
document.getElementById('examnumber').style.color="red";
但是examnumber
是字段名,而不是Id。您还应该为字段添加一个Id:
<td><input type="text" name="examnumber" id="examnumberfield"/></td>
这将使您能够使用贯穿始终:
var examnumberlabel = document.getElementById("examnumber");
var examnumberfield = document.getElementById("examnumberfield");
if (examnumberfield.value=="") {
msg+="You must enter your examination number. 'n";
examnumberfield.focus();
examnumberlabel .style.color="red";
//.. etc
(我建议对值进行简单的regex测试可以验证值的长度和数字状态,无需单独测试。)
/^'d{4}$/.test(document.ExamEntry.examnumber.value)
如果此Regexp正好包含4位数字(0-9),则它将返回true。
相关文章:
- 是否可以在数字输入框中的小按钮中添加事件侦听器
- 用于数字输入的正则表达式
- AngularJs:在数字输入字段中设置验证的条件最小值和最大值
- 敲除:如何对两个数字输入进行双向绑定
- 在数字输入上按回车键时提交
- 如何显示正好 2 位数字的 html 数字输入的输入值
- 如何使用鼠标或触摸更改数字输入字段
- 为数字输入添加特殊字符
- 在一些Android设备/Chrome上,HTML5数字输入中没有小数点
- 仅HTML输入除^之外的数字输入
- 如何处理 jQuery 中的数字输入更改
- 使用 js 禁用文本输入中的数字输入
- 角度JS数字输入和默认值
- 如何根据数字输入的总和限制数字输入
- 如何更改数字输入的格式
- 从给定的最大数字中减去并输出数字输入值
- 如何使此数字输入接受逗号
- 如何将加号和减号附加到数字输入和更新值
- 在我更改数字输入时获取要更改的范围的内容
- 多个数字输入,jquery .each 如果 val() 大于,则将类添加到元素