jquery onsubmit返回false不工作

时间:2016-02-11 08:31:58

标签: jquery

我试图在script.js上使用onsubmit return false来验证防止index.php表单从重定向到login.php。 script.js文件从login.php获取ajax响应。但是onsubmit返回false是行不通的。这是代码

索引php文件

<html>
<head>
<title>Untitled Document</title>

<script src="jquery-1.8.0.min.js" type="text/javascript"></script>
<script src="script.js" type="text/javascript"></script>
</head>

<body>
<form id="myForm"   action="login.php" method="POST">
Username:<input type="text"  id="username" name="username"><br  />

Password:<input type="password"  id="password" name="password"><br  />
<button id="submit">Login</button>

</form>
<div id="ack"></div>

</body>
</html>

登录php文件

<?php 
include("dbcon.php");
$username = mysql_real_escape_string($_POST["username"]);
$password = mysql_real_escape_string(md5($_POST["password"]));

$sql = "select count(*) from users WHERE username='$username' 
AND password='$password '";
$res= mysql_query($sql);
$row =  mysql_fetch_array($res);

if( $row[0] >0 )
echo "login successful";
else
echo "login failed";
?>

脚本js文件

$("button#submit").click( function(){
    if( $("#username").val()=="" || $("#password").val()=="")

    $("div#ack").html("Please enter username and password");
    else
    $.post( $("#myForm").attr("action"),//attribute eg login.php
    $("#myForm :input").serializeArray(),//break data into key value pairs
               function(data){//catch daat from login.php eg login failed or login                                      
                $("div#ack").html(data);    
    });

    $("#myForm").submit( function(){
        });
return false;

    });

任何形式的协助都将受到赞赏

2 个答案:

答案 0 :(得分:0)

要实现您的要求,您需要挂钩submit元素的form事件,然后使用event.preventDefault()停止该事件。试试这个:

$("#myForm").submit(function(e) {
    e.preventDefault();
    if ($("#username").val() == "" || $("#password").val() == "") {
        $("div#ack").html("Please enter username and password");
    }
    else {
        $.post(this.action, $(this).find(':input').serializeArray(), function(data) {           
            $("div#ack").html(data);    
        });
    }
});

答案 1 :(得分:0)

您可以在点击事件中使用 preventDefault 功能。

$("button#submit").click( function(event){
if( $("#username").val()=="" || $("#password").val()=="")

$("div#ack").html("Please enter username and password");
else
$.post( $("#myForm").attr("action"),//attribute eg login.php
$("#myForm :input").serializeArray(),//break data into key value pairs
           function(data){//catch daat from login.php eg login failed or login                                      
            $("div#ack").html(data);    
});
event.preventDefault();
return false; 
});