请帮助我。验证不起作用:
<script type="text/javascript" src="javascript.js">
function validation()
{
var fname=document.forms["form1"]["fname"].value;
var lname=document.forms["form1"]["lname"].value;
var idnumber=document.forms["form1"]["idnumber"].value;
var email=document.forms["form1"]["email"].value;
var atpos=email.indexOf("@");
var dotpos=email.lastIndexOf(".");
var address=document.forms["form1"]["address"].value;
var phonenumber=document.forms["form1"]["phonenumber"].value;
if (fname==null || fname=="")
{
alert("Name should be entered correctly");
return false;
}
if (lname==null || lname=="")
{
alert("Name should be entered correctly");
return false;
}
if (isNaN(idnumber))
{
alert("Please enter a valid id number");
return false;
}
if (atpos<1 || dotpos<atpos+2 || dotpos+2>=x.length)
{
alert("Please enter a valid e-mail address");
return false;
}
if(address==null || address=="")
{
alert("Please insert your address");
return false;
}
if (isNaN(phonenumber))
{
alert("Please enter a valid phone number");
return false;
}
}
</script>
<form name="form1" action="validation.php" method="post" onsubmit=" return validation(this);return false">
Firstname:<input type="text" name="fname"><br/>
Lastname:<input type="text" name="lname"><br/>
Nation ID Number:<input type="text" name="idnumber" minlength="8"maxlength="8"><br/>
Email address: <input type="text" name="email"><br/>
Address:<input type="text" name="address"><br/>
Pnone number:<input type="text" name="phonenumber"><br/>
<input type="reset" name="reset" value="reset">
<input type="submit" name="submit" value="submit">
</form>
1条答案
按热度按时间qvtsj1bj1#
该代码存在一些问题:
src="javascript.js"
的同时使用同一个<script>
元素来声明一个函数。<form>
元素中,有一个冗余的;return false
。表单将从return validation(this)
中取值,其后的任何内容都将被忽略。此外,不需要";"使用内嵌JavaScript时。this
作为参数传递给validation()
函数,但验证不需要任何参数。应为:function validation(oForm)
this
,为什么不使用它呢?this
是一个对元素本身的引用,所以对于验证函数来说,它是一个对表单的引用,所以不需要命名表单。函数中的引用为:
这些改动本身就可以解决你的问题。我将进一步检查代码,看看是否还有其他问题。
我已经测试过验证了,它是有效的。唯一 * 需要 * 的修改是从你的
<SCRIPT>
标签中删除scr=validation.js
。按照我的建议,使用单独的标签。但我强烈建议你考虑一下我提到的其他问题。
此外,关于验证本身的其他建议:
null
,只需要""就足够了。您可以简单地使用:minlength
,只有maxlength
isNaN(idnumber)
将返回true
。如果length〈8,也是如此。我假设这是一个具有所需长度的必填字段,因此您应该使用:功能微调(文本){
}
用法如下:
validation()
中使用显式return true;
。以下是所有更改后的建议代码: