我试图在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;
});
任何形式的协助都将受到赞赏
答案 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;
});