我正在尝试使用JavaScript验证表单,但代码似乎没有执行。表单正在使用php处理,工作得很好。但是,验证无效。有人可以帮我解决这个问题。
<script>
function validateForm(){
var x = document.getElementById('name');
var email = document.getElementById('email');
var num = document.getElementById('number');
var size = document.getElementById('size');
var filter = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
var atpos=email.value.indexOf("@");
var dotpos=email.value.lastIndexOf(".");
if (x.value == null || x.value == "") {
alert("Please Enter your name");
x.foucs;
x.style.background = 'Yellow';
return false;
}
if(!filter.test(email.value){
alert('Please provide a valid email address');
email.focus;
email.value="";
return false;
}
if(num.value == null && num.value == ""){
alert('Please enter your mobile number');
num.focus();
}
if(!isNan(num.value){
alert('Please enter a valid number');
num.focus();
num.style.background();
return false;
}
return false;
}
</script>
这是我的HTML代码。
<form method="post" name="myForm " onsubmit="return validateForm()" action="myprocessingscript.php" >
<input type="text" name="name" placeholder="Name" class="text" id="name" />
<input name="email" placeholder="Email" type="text" class="text" id="email"/>
<input name="number" placeholder="Mobile Number" type="text" class="text" id="number"/>
<input name="size" placeholder="Size" type="text" class="text" id="size" />
<input type="Submit" value="Submit" class="button">
答案 0 :(得分:1)
尝试使用x.focus();
x.foucs;
不是有效的陈述,也不是email.focus;
。
答案 1 :(得分:1)
更正foucs
的拼写并确保所有引用都有括号,如:
email.focus();
如果没有括号,则不调用该函数。它是有效的Javascript但它不会做任何事情。
您还错过了结束)
:
if(!filter.test(email.value){
// ^ add another )
在这里:
if(!isNan(num.value){
// ^ add another )
!isNan(....)
应为isNaN(....)
。 Javascript区分大小写,你不应该在这里“注意”它。 isNaN
说“不是数字”所以它已经“注意到了”。
在下面的一行中,样式没有后台功能。看起来你想在这里分配一个值而不是调用函数:
num.style.background(); // change to assign value.
在此行中,将&&
更改为||
:
if(num.value == null && num.value == ""){
// ^ should be ||
最后,删除最后的return false
。
答案 2 :(得分:0)
这些不对我不认为:
email.focus;
// Try email.focus();
和
x.foucs;
// Try x.focus();
同时查看代码我看不到</form>
试试这个:
function validateForm(){
var x = document.getElementById('name');
var email = document.getElementById('email');
var num = document.getElementById('number');
var size = document.getElementById('size');
var filter = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
var atpos = email.value.indexOf("@");
var dotpos = email.value.lastIndexOf(".");
if (x.value == null || x.value == "") {
alert("Please Enter your name");
x.focus();
x.style.background = 'Yellow';
return false;
}
if(!filter.test(email.value){
alert('Please provide a valid email address');
email.focus();
email.value="";
return false;
}
if(num.value == null || num.value == ""){
alert('Please enter your mobile number');
num.focus();
return false;
}
if(!isNaN(num.value)){
alert('Please enter a valid number');
num.focus();
num.style.background = "Yellow";
return false;
}
return true;
}