我知道代码有效,因为我在其他三个页面上使用它并且工作正常,但是我已经开始制作我的网站的移动版本了。基本上,代码用于实时登录。它序列化用户数据,显示“登录”消息,然后向文件发送ajax请求。然后,来自该文件的响应内容将替换登录消息,并根据情况发生不同的事情。我直接从一个工作示例中移植了代码,现在,尽管对代码进行了很多更改,但jquery似乎根本没有触发。这是我的jquery代码:
function login() {
var dataString = $('#login_form').serialize();
console.log(dataString);
$(".menu_login_form").html("<center>Logging in...</center>");
$.ajax({
type: "POST",
url: "../include/actions/login.php",
data: dataString,
cache: false,
success: function(html){
$(".menu_login_form").html(html);
}
});
return false;
};
$("#login_form").on("submit", login);
这是我的HTML代码:
<div class="menu_login_form">
<form id="login_form" method="post">
<input type="text" name="username" placeholder="Username"><br>
<input type="password" name="password" placeholder="Password" style=""><br>
<input type="checkbox" name="remember" checked="checked" style="margin:0;margin-right:10px;margin-top:-2.5px"><span>Remember Me</span><br>
<input type="submit" value="Login..." id="login_form_btn" class="btn">
</form>
</div>
有人知道这里有什么不对吗?
编辑:我现在已经开始工作了,我只是把它放在了错误的地方 - joeframbach我接受了你的答案,因为它是那里唯一的答案。感谢您的所有建议。答案 0 :(得分:0)
将其包裹在准备文件的咒语中。这告诉jquery在执行任何操作之前等待页面完全加载。
$(function() {
function login() {
var dataString = $('#login_form').serialize();
console.log(dataString);
$(".menu_login_form").html("<center>Logging in...</center>");
$.ajax({
type: "POST",
url: "../include/actions/login.php",
data: dataString,
cache: false,
success: function(html){
$(".menu_login_form").html(html);
}
});
return false;
};
$("#login_form").on("submit", login);
});