返回信息流一表单,重点在表单中的button,id为bt1
<form role="form">
<div class="form-group">
<label for="adminname"><?php echo $logFormI18N['adminname'];?></label>
<input type="text" class="form-control" id="adminname" placeholder="<?php echo $logFormI18N['adminnameTip'];?>">
</div>
<div class="form-group">
<label for="password"><?php echo $logFormI18N['password'];?></label>
<input type="password" class="form-control" id="password" placeholder="<?php echo $logFormI18N['passwordTip'];?>">
</div>
<button id="bt" class="btn btn-default"><?php echo $logFormI18N['submit'];?></button>
</form>
表单外再一button,id为bt2;
<button id="bt2"></button>
对应JavaScript代码为:
$(document).ready(function(){
$('#bt').click(function(){
var adminname = $('#adminname').val();
var password = $('#password').val();
// if (adminname == '' || password == '')
// return;
var datatosend = 'adminname='+adminname+'&password='+password;
$.ajax({
url : "../system/login.php",
data : {adminname : adminname, password : password},
type : 'post',
dataType : 'html',
success : function(html, status){
alert(html);
alert(status);
},
error : function(a,b,v){
alert(a.status);
alert(a.readyState);
},
});
});
});
测试时将bt换为bt1和bt2,测试bt2走success分支;但bt1走error分支;
谷歌浏览器控制台查看,路径没有问题,bt1提示canceled;
readyState返回值为0,不理解
如果对javas代码修改为:
$(document).ready(function(){
// $('#bt').click(function(){
var adminname = $('#adminname').val();
var password = $('#password').val();
// if (adminname == '' || password == '')
// return;
var datatosend = 'adminname='+adminname+'&password='+password;
$.ajax({
url : "../system/login.php",
data : {adminname : adminname, password : password},
type : 'post',
dataType : 'html',
success : function(html, status){
alert(html);
alert(status);
},
error : function(a,b,v){
alert(a.status);
alert(a.readyState);
},
});
// });
})
即不绑定某个bt,ajax正常运行,走success分支;
不知到底是哪里出的错误,求解释;如果发现有中英文符号的错误,请无视,是编辑的问题,如果真有错,控制台会发现的
原谅代码没有缩进,贴过来格式全无了……
这是一条镜像帖。来源:北邮人论坛 / www-technology / #22481同步于 2013/12/23
该镜像源已超过 30 天没有更新,可能在源站已被删除。
WWWTechnology机器人发帖
[问题]求JQuery大神指教ajax方法的问题
partoneplay
2013/12/23镜像同步8 回复
订阅后,新回复会通过你的通知中心匿名送达。
8 条回复
【 在 wdx01 的大作中提到: 】
: $('#bt') 你确定能绑定到function吗?这里是ID selector,换成class selector试试~
为何不能通过id为button绑定方法,换成class同样无法解决问题;
通过id选择bt2是可以异步请求成功的,但是bt1就不行,不解?
【 在 partoneplay 的大作中提到: 】
: 一表单,重点在表单中的button,id为bt1
: <form role="form">
: <div class="form-group">
: ...................
首先,你的第一个button的id不是bt1
其次,为什么移到form外面就可以:
Buttons like <button>Click to do something</button> are submit buttons (即type="submit").
你如果这样写<button type="button"></button>就不会提交了。
【 在 partoneplay 的大作中提到: 】
: 为何不能通过id为button绑定方法,换成class同样无法解决问题;
: 通过id选择bt2是可以异步请求成功的,但是bt1就不行,不解?
id是bt1还是bt?
Button放到表单里,即#bt1用同步方式就可以成功吧,放到表单外,异步可成功,我遇到过这种情况,没想清楚为什么。
【 在 partoneplay 的大作中提到: 】
: 一表单,重点在表单中的button,id为bt1
: <form role="form">
: <div class="form-group">
: ...................
form 被提交了。页面刷新,你的AJAX 就取消了。click 绑定的方法里 加个 e.preventDefault() 然后return false; 或者给form 的onSubmit 给一个return false;