验证Javascript中的表单无效

时间:2013-10-04 15:58:50

标签: javascript php html

我正在尝试使用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">

3 个答案:

答案 0 :(得分:1)

尝试使用x.focus();

x.foucs;不是有效的陈述,也不是email.focus;

答案 1 :(得分:1)

Working fiddle

更正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;


}