jQuery AJAX.Post不使用引导
我有一个登录表单,如果我使用传统的html表单post提交,它可以很好地工作jQuery AJAX.Post不使用引导,jquery,ajax,twitter-bootstrap,Jquery,Ajax,Twitter Bootstrap,我有一个登录表单,如果我使用传统的html表单post提交,它可以很好地工作 <form class="form-horizontal" id="loginform"> <div class="control-group"> <label class="control-label" for="user_name"> Username or E-Mail </label>
<form class="form-horizontal" id="loginform">
<div class="control-group">
<label class="control-label" for="user_name">
Username or E-Mail
</label>
<div class="controls">
<input type="text" id="user_name" name="user_name" autofocus>
</div>
</div>
<div class="control-group">
<label class="control-label" for="password">
Password
</label>
<div class="controls">
<input type="password" id="password" name="password">
</div>
</div>
<div class="control-group">
<div class="controls">
<label class="checkbox">
<input type="checkbox">Remember me
</label>
<br>
<button type="submit" class="btn" id="submit_login">
Sign-in
</button>
</div>
</div>
</form>
但这不是发布,我的会话也没有开始。我已经打印了jQuery“user_name”和“password”变量,它们从表单中提取正确的值。“login.php”文件查找的变量还有“用户名”和“密码”。运行脚本时没有控制台错误
是什么导致了此处的断开连接?您应该在发送
$之前立即阻止默认操作。post
以避免默认表单提交,否则您的$。post
将(在大多数情况下)中止
$(document).ready(function(){
$("#submit_login").click(function(event){
event.preventDefault(); // stop form submit
var user_name = $("#user_name").val();
var password = $("#password").val();
$.post("login.php", {user_name: user_name, password: password});
});
});
它是jQuery val()方法和Bootstrap的btn类的组合,该类默认将按钮样式设置为submit按钮。我换了
var user_name = $("#user_name").val();
var password = $("#password").val();
到
及
到
AJAX也按预期工作
关键是将“提交”改为“按钮”,而不仅仅是一起删除类型分配。如果未指定类型,则按钮默认为类型“提交”您没有阻止默认操作,因此在启动ajax请求后会进行正常形式的提交,导致请求中止。您是否检查了控制台以查看是否确实发送了帖子?反应如何?在收到服务器的响应后,该代码什么也不做,这是故意的吗?那凯文B呢said@KevinB这是对的。或者,您可以将提交按钮从type=“submit”更改为type=“button”,它将不再尝试重定向。嗨,Kevin,我添加了event.preventDefault(),但帖子仍然没有提交。还有什么不对劲的吗?是的,它与PHP无关,因为我可以在没有Ajax的情况下提交表单,但这并不一定意味着没有PHP问题发生。在php方面,检查使用ajax发出请求时可用的数据。
var user_name = $("#user_name").val();
var password = $("#password").val();
var user_name = document.getElementById("user_name").value;
var password = document.getElementById("password").value;
<button type="submit" class="btn" id="submit_login">
<button type="button" class="btn" id="submit_login">