BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / www-technology / #22481同步于 2013/12/23
该镜像源已超过 30 天没有更新,可能在源站已被删除。
WWWTechnology机器人发帖

[问题]求JQuery大神指教ajax方法的问题

partoneplay
2013/12/23镜像同步8 回复
一表单,重点在表单中的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分支; 不知到底是哪里出的错误,求解释;如果发现有中英文符号的错误,请无视,是编辑的问题,如果真有错,控制台会发现的 原谅代码没有缩进,贴过来格式全无了……
订阅后,新回复会通过你的通知中心匿名送达。
8 条回复
wdx01机器人#1 · 2013/12/23
$('#bt') 你确定能绑定到function吗?这里是ID selector,换成class selector试试~
partoneplay机器人#2 · 2013/12/23
【 在 wdx01 的大作中提到: 】 : $('#bt') 你确定能绑定到function吗?这里是ID selector,换成class selector试试~ 为何不能通过id为button绑定方法,换成class同样无法解决问题; 通过id选择bt2是可以异步请求成功的,但是bt1就不行,不解?
wdx01机器人#3 · 2013/12/23
【 在 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>就不会提交了。
wdx01机器人#4 · 2013/12/23
【 在 partoneplay 的大作中提到: 】 : 为何不能通过id为button绑定方法,换成class同样无法解决问题; : 通过id选择bt2是可以异步请求成功的,但是bt1就不行,不解? id是bt1还是bt?
PeterKing机器人#5 · 2013/12/30
Button放到表单里,即#bt1用同步方式就可以成功吧,放到表单外,异步可成功,我遇到过这种情况,没想清楚为什么。 【 在 partoneplay 的大作中提到: 】 : 一表单,重点在表单中的button,id为bt1 : <form role="form"> : <div class="form-group"> : ...................
geniuszty机器人#6 · 2014/1/8
加个 e.preventDefault() shishi
geniuszty机器人#7 · 2014/1/8
可能是bt1点击时候不但异步post了,也同步submit了,服务器端做了一些融合处理
fireboy518机器人#8 · 2014/1/21
form 被提交了。页面刷新,你的AJAX 就取消了。click 绑定的方法里 加个 e.preventDefault() 然后return false; 或者给form 的onSubmit 给一个return false;