繁体   English   中英

jQuery验证不会对成功做出反应

[英]jquery validation doesnt react on succes

我正在尝试在表单上进行jquery验证,一切都可以检查输入,但是当一切正确时,它就不会“进一步”并返回任何内容。

function validateFields() {

    var fname = $("input#fname").val();
    if (fname == "") {
        $( "#WrapSu" ).css({"border-radius":"0px 0px 3px 3px"});
        $( "#Fejl" ).html("<p class=\"c\">First name missing!</p>");
        $( "#Fejl" ).slideDown( "slow" );
        return false;
    }

    var lname = $("input#lname").val();
    if (lname == "") {
        $( "#WrapSu" ).css({"border-radius":"0px 0px 3px 3px"});
        $( "#Fejl" ).html("<p class=\"c\">Last name missing!</p>");
        $( "#Fejl" ).slideDown( "slow" );
        return false;
    }

    var femail = $("input#femail").val();
    if (femail == "") {
        $( "#WrapSu" ).css({"border-radius":"0px 0px 3px 3px"});
        $( "#Fejl" ).html("<p class=\"c\">Email missing!</p>");
        $( "#Fejl" ).slideDown( "slow" );
        return false;
    }

    var lemail = $("input#lemail").val();
    if (lemail == "") {
        $( "#WrapSu" ).css({"border-radius":"0px 0px 3px 3px"});

        $( "#Fejl" ).html("<p class=\"c\">Email missing!</p>");
        $( "#Fejl" ).slideDown( "slow" );
        return false;
    }

    var cemail = /^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$/;
    if (femail !== "") {
        $( "#WrapSu" ).css({"border-radius":"0px 0px 3px 3px"});
        if(!cemail.test(femail)){
            $( "#Fejl" ).html("<p class=\"c\">Your email is invalid.</p>");
            $( "#Fejl" ).slideDown( "slow" );
            return false;
        }
    }

    var fpassword = $("input#fpassword").val();
    if (fpassword == "") {
        $( "#WrapSu" ).css({"border-radius":"0px 0px 3px 3px"});
        $( "#Fejl" ).html("<p class=\"c\">Password missing!</p>");
        $( "#Fejl" ).slideDown( "slow" );
        return false;
    }

    var lpassword = $("input#lpassword").val();
    if (lpassword == "") {
        $( "#WrapSu" ).css({"border-radius":"0px 0px 3px 3px"});
        $( "#Fejl" ).html("<p class=\"c\">Confirm password!</p>");
        $( "#Fejl" ).slideDown( "slow" );
        return false;
    }

     var datastring = 'fname='+ fname +'&lname='+ lname +'&email='+ femail +'&password='+ fpassword;

    $.ajax({
        type: "POST",
        url: "opret.php",
        data: dataString,
        success: function() {
            if(responseText == 1) {
                $( "#Fejl" ).html("<p class=\"c\">virker</p>");
            } else { // else blank response
                $( "#Fejl" ).html("<p class=\"c\">virker2</p>");
            }
        }
    });
    return false;
};
    $('form#opret').on('submit',function(e) {
    e.preventDefault();
    var success=validateFields();
});

而且我不知道需要更改什么,我做了很多尝试,但经验停止了,我不知道它是什么。

我希望任何人都可以友好地解释我的错误,以便我将学会:-) php代码:

1<?php

include("config.php");

$fname=$_POST['fname'];
$lname=$_POST['lname'];
$email=$_POST['femail'];
$password=$_POST['fpassword'];

$memails = mysql_result(mysql_query("SELECT COUNT(*) FROM Users WHERE email = '$email'"),0); //check for email exist

if($memails < 1){
    echo "1";
} else {
    echo "2";
}

?>

您正在尝试将参数作为某种数据发送。 您需要像这样发送查询字符串...

$.ajax({
    type: "POST",
    url: 'opret.php' + '?' + dataString,
    success: function(responseText) {
        if(responseText == "1") {
            $( "#Fejl" ).html("<p class=\"c\">virker</p>");
        } else { // else blank response
            $( "#Fejl" ).html("<p class=\"c\">virker2</p>");
        }
    }
});

...,然后让您的PHP遍历$ _POST以获取变量,或将数据作为JSON发送,然后将其解码为PHP脚本中的对象,如下所示...

var data = {
    'fname': fname,
    'lname': lname, 
    'email': femail,
    'password': fpassword
};

$.ajax({
    type: "POST",
    dataType: 'json',
    data: data,       
    url: "opret.php",
    success: function(responseText) {
        if(responseText == "1") {
            $( "#Fejl" ).html("<p class=\"c\">virker</p>");
        } else { // else blank response
            $( "#Fejl" ).html("<p class=\"c\">virker2</p>");
        }
    }
});

编辑:固定追加查询字符串。

编辑2:更新为处理实际的PHP返回。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM