2015-01-03 53 views
-2

我有JS表单验证的麻烦。我使用正则表达式。如果所有字段的用户填写正确,则表单中的提交按钮处于活动状态(onmouseover),但当其中一个字段不正确时,提交按钮将被禁用。当用户填写所有字段正确 - 提交按钮站仍然禁用,你能帮我解决这个问题吗?因此,用户必须启用所有字段并提交按钮。如果从HTML手动,该事件将被触发删除禁用属性http://jsfiddle.net/djwasp4o/JS表单验证,如果所有字段都正确,激活提交按钮

<!-- validation --> 
<script language=JavaScript> 

    function checkForm() { 

    var err = 0; 

    if (document.getElementById("fio").value == '') { 
     document.getElementById("fio").style.border = "1px solid #FF0000"; 
     document.getElementById("fio_err").innerHTML = "Enter data"; 
     err = 1; 
    } 

    if (document.getElementById("_phone_top").value.length < 5) { 
     document.getElementById("_phone_top").style.border = "1px solid #FF0000"; 
     document.getElementById("tel_err").innerHTML = "length < 5"; 
     err = 1; 
    } 

    var email = document.getElementById('email').value; 
    emailTest = "^[_.0-9a-z-][email protected]([0-9a-z][0-9a-z_-]+.)+[a-z]{2,4}$"; 
    var regex = new RegExp(emailTest); 

    if (!regex.test(email)) { 
     document.getElementById("email").style.border = "1px solid #FF0000"; 
     document.getElementById("email_err").innerHTML = "invalid e-mail"; 
     err = 1; 
    } 

    if (err == 1) { 
     document.getElementById('ok').setAttribute("disabled","disabled"); 
    } else { 
     document.getElementById('ok').removeAttribute("disabled"); 
    }  
} 

function setBorder(id) { 

    document.getElementById(id).style.border = "1px solid #C0C0C0"; 
    document.getElementById(id+"_err").innerHTML = ""; 

} 
</script> 

<!-- Form --> 
<form method="post" id="form_top" name="form_top" action="/mail.php"> 
    <input type="text" class="textbox" name="fio" id="fio" placeholder="NAME"><div id="fio_err"></div><br><br> 
    <input type="text" class="textbox" name="tel" id="_phone_top" placeholder="PHONE"><div id="tel_err"></div><br><br> 
    <input type="text" class="textbox" name="email" id="email" placeholder="E-Mail"><div id="email_err"></div><br><br> 
    <input type="text" class="textbox" name="company" placeholder="COMP"><br><br> 
    <input type="text" name="formfrom" value="верхняя форма" hidden> 
    <input type="submit" class="textbox" name="ok" id="ok" value="Submit!" onmouseover="checkForm()"><br> 
</form> 

回答

0

感谢,被禁用按钮不支持触发器的onmouseover。 我尝试在每个用户字段上使用onblur触发器,它非常完美!

相关问题