Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/428.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
javascript表单验证不起作用,可以';为什么_Javascript_Forms - Fatal编程技术网

javascript表单验证不起作用,可以';为什么

javascript表单验证不起作用,可以';为什么,javascript,forms,Javascript,Forms,所以我有这个html: <form action="insert.php" method="post" onsubmit="return validateForm(this)"> <label for="FUP start date">FUP start date:</label> <input type="text" name="inputField" id="inputField"/> </br> </br> <

所以我有这个html:

<form action="insert.php" method="post" onsubmit="return validateForm(this)">
<label for="FUP start date">FUP start date:</label> 
<input type="text" name="inputField" id="inputField"/>
</br>
</br>
<label for="FUP end date">FUP end date:&nbsp;</label> 
<input type="text" name="inputField2" id="inputField2" />
</br>
</br>
<label for="Allowed traffic">Allowed traffic:</label>
<input type="text" name="Allowed_traffic" id="Allowed_traffic"/>
</br>
</br>
<label for="Frequency">Frequency:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</label>
<input type="text" name="Frequency" id="Frequency" />
</br>
</br>
<input type="submit" value="submit">
</form> 

FUP开始日期:


FUP结束日期:

允许交通量:

频率:

下面是密码的javascript(Parola):


函数validateForm(formElement){
if(formElement.Allowed_traffic.length<5){
警报(“aa请输入至少5个字符长的密码”);
返回false;
}
如果(formElement.Allowed_traffic.length>10){
警报(“请输入长度小于10个字符的密码”);
返回false;
}
}
我做错了什么?我想在提交时检查密码是否在5到10个字符之间。
谢谢大家!

.length
替换为
.value.length

您当前正在查看
元素本身的
length
属性(该属性可能不存在)。您要查看的是
元素的值的
length
属性,因此请执行以下操作:

if (formElement.Allowed_traffic.value.length < 5) {
    alert('aaaPlease enter a password that is at least 5 characters long');
    return false;
}
else if (formElement.Allowed_traffic.value.length > 10) {
    alert('Please enter a password that is less than 10 characters long');
    return false;
}
if(formElement.Allowed_traffic.value.length<5){
警报(“aa请输入至少5个字符长的密码”);
返回false;
}
否则如果(formElement.Allowed_traffic.value.length>10){
警报(“请输入长度小于10个字符的密码”);
返回false;
}
请注意,我已将其更改为
,如果。。。否则,如果
,因为如果第一个条件为真,则第二个条件不能为真。

尝试使用

 var Allowed_traffic = document.getElementById("Allowed_traffic");
而不是

formElement.Allowed_traffic

从技术上讲,这是不必要的,因为表单提交仅在返回值完全为false和/或调用事件对象的
preventDefault
方法时才会取消。不返回值(返回
未定义的
)允许继续提交。这实际上不是必需的,因为后者仍然有效。问题在于使用
.length
而不是
.value.length
。是的,你是对的,但我想
document.getElementById(“允许的流量”)
在跨浏览器上比
formElement更可靠。Allowed_traffic
的确如此,出于这个原因,我也更喜欢第一个而不是第二个,尽管它更详细。
formElement.Allowed_traffic