我为我的网站制作了一份联系表格,我想进行验证。这是HTML:
<form name="contact" method="post" action="Contact.php" onsubmit="return validateForm()" >
<span class="formtext"> name:</span> <input id="nameinput" type="text" name="name" /><br />
<span class="formtext"> email:</span> <input id="mailinput" type="text" name="email" /><br />
<span class="formtext"> message:</span><br /> <textarea id="messageinput" type="text" name="message"> </textarea> <br />
<input id="submitinput" name="submit" type="submit" value="שלח"/>
</form>
这是JS:
// Contact Form //
function validateForm()
{
var x=document.forms["contact"]["name"].value;
var y=document.forms["contact"]["email"].value;
var atpos=y.indexOf("@");
var dotpos=y.lastIndexOf(".");
var z=document.forms["contact"]["email"].value;
if (x==null || x=="" || y==null || y=="" || z=="" || z==null)
{
alert("Please fill all the details");
return false;
}
else
if (atpos<1 || dotpos<atpos+2 || dotpos+2>=y.length)
{
alert ("Please fill a valid email address");
return false;
}
}
问题与变量'z'有关。当我填写表格并发送它时,即使我填写了textarea,我也会收到“请填写所有详细信息”提醒。我知道它是'z',因为如果我删除变量和'if'中与var'z'有关的部分,问题就解决了 - 但是没有验证。
答案 0 :(得分:0)
z还处理email
输入而不是message
textarea
尝试替换
var z=document.forms["contact"]["email"].value;
通过
var z=document.forms["contact"]["message"].value;