javascript验证无法正常工作

时间:2014-06-01 13:06:41

标签: javascript jquery

这是我的表单验证功能:

function validateForm() {
    valid = true;
    var a=document.forms["checkout"]["fname"].value;
    if (a==null || a=="")
    {
    alert("First name must be filled out");
    valid = false;
    }
    var b=document.forms["checkout"]["lname"].value;
    if (b==null || b=="")
    {
    alert("Last name must be filled out");
    valid = false;
    }
    var c=document.forms["checkout"]["address"].value;
    if (c==null || c=="")
    {
    alert("Address must be filled out");
    valid = false;
    }   
    var d=document.forms["checkout"]["email"].value;
    if (d==null || d=="")
    {
    alert("Email address must be filled out");
    valid = false;
    }
    var e=document.forms["checkout"]["email"].value;
    if(!validateEmail(e)){
    alert("Must be a valid email address");
    valid = false;
    }   
    var f=document.forms["checkout"]["phone"].value;
    if (f==null || f=="")
    {
    alert("Phone number must be filled out");
    valid = false;
    }
    var g=document.forms["checkout"]["phone"].value;
    if(!validatePhone(g)){
    alert("Must be a valid phone number");
    valid = false;
    }   
    var h=document.forms["checkout"]["card"].value;
    if (h==null || h=="")
    {
    alert("Credit card info must be filled out");
    valid = false;
    }
    var i=document.forms["checkout"]["card"].value;
    if(!validateCard(i)){
    alert("Must be a valid credit card number");
    valid = false;
    }
    return valid;
}
 function validateEmail(email) {
    var pattern = new RegExp(/^(("[\w-\s]+")|([\w-]+(?:\.[\w-]+)*)|("[\w-\s]+")([\w-]+(?:\.[\w-]+)*))(@@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$)|(@@\[?((25[0-5]\.|2[0-4][0-9]\.|1[0-9]{2}\.|[0-9]{1,2}\.))((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\.)    {2}(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\]?$)/i);
    return pattern.test(email);
}
function validatePhone(phone) {
    var ppattern = new RegExp(/^[\d ]+$/);
    return ppattern.test(phone);
}
function validateCard(card) {
    var cpattern = new RegExp(/(?:\d[ ]?){12,17}\d/);
    return cpattern.test(card);
}

表单在到达电子邮件地址之前会正确验证。无论我说什么,都说电子邮件无效。此外,出于某种原因,当它过去只检查一个警报消息时,它会循环显示所有警报消息。

编辑添加php验证:

if(isset($_POST['SubmitForm'])){
if(empty($_POST['fname'])){
    echo "First name cannot be empty!<br/><br/>";
    return false;
}
if(empty($_POST['lname'])){
    echo "Last name cannot be empty!<br/><br/>";
    return false;
}
if(empty($_POST['address'])){
    echo "Address field cannot be empty!<br/><br/>";
    return false;
}
if(empty($_POST['email'])){
    echo "Email field cannot be empty!<br/><br/>";
    return false;
}
if($_POST['email']){
    $email = $_POST['email'];
    $regex = '/^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$/'; 
    $match = preg_match($regex,$email);
    if(!$match)
    echo "Not a valid email address!<br/><br/>";
    return false;
}
if(empty($_POST['phone'])){
    echo "Phone number cannot be empty!<br/><br/>";
    return false;
}
if($_POST['phone']){
    $phone = $_POST['phone'];
    $reg = '/^[\(]?(\d{0,3})[\)]?[\s]?[\-]?(\d{3})[\s]?[\-]?(\d{4})[\s]?[x]?(\d*)$/';
    $pmatch = preg_match($reg, $phone);
    if (!$pmatch)
    echo "Not a valid phone number!<br/><br/>";
    return false;
}
if(empty($_POST['card'])){
    echo "Card field cannot be empty!<br/><br/>";
    return false;
}
if($_POST['card']){
    $card = $_POST['card'];
    $match = preg_match("#[0-9]#",$card);
    if(strlen($card) < '13')
    echo "Card field must be at least 13 digits <br/><br/>";
    return false;
    if(!$match)
    echo "Card number must be numeric<br/><br/>";
    return false;
}
if($_POST['month']){
$month = $_POST['month'];
if($month < 05)
    echo "Expired credit card";
    return false;
}
return true;
$fname = $_SESSION['fname'];
    $lname = $_SESSION['lname'];
    $email = $_SESSION['email'];
    $phone = $_SESSION['phone'];
    $representation = json_encode($_SESSION['cart'],JSON_PRETTY_PRINT);
    $pfile = fopen("orders.txt","a+");
    rewind($pfile);
    fwrite($pfile, "\r\n$fname:$lname:$email:$phone:$representation");
    fclose($pfile);
}

0 个答案:

没有答案