Javascript 一个Ajax POST请求的多个响应
我有一个按钮,可以打开一个引导模式,并使用ajax GET请求将一些数据从json文件加载到Javascript 一个Ajax POST请求的多个响应,javascript,jquery,ajax,twitter-bootstrap,bootstrap-modal,Javascript,Jquery,Ajax,Twitter Bootstrap,Bootstrap Modal,我有一个按钮,可以打开一个引导模式,并使用ajax GET请求将一些数据从json文件加载到模式体中。我在模式中添加了第二个按钮(OK),以增加一个数字(在json文件中的对象内部),并通过ajax post请求将对象作为字符串发布到php文件(以更新json文件并打印数字)。 问题是,当我第二次单击OK时,我得到了两个响应。当我第三次单击OK时,我得到了3个响应,以此类推,响应是递增的。 这就像有一个计数器,可以计算模态打开的时间。 即使我没有单击“确定”并仅关闭模式,此计数器也会增加,当我单
模式体中。我在模式中添加了第二个按钮(OK),以增加一个数字(在json文件中的对象内部),并通过ajax post请求将对象作为字符串发布到php文件(以更新json文件并打印数字)。
问题是,当我第二次单击OK时,我得到了两个响应。当我第三次单击OK时,我得到了3个响应,以此类推,响应是递增的。
这就像有一个计数器,可以计算模态打开的时间。
即使我没有单击“确定”并仅关闭模式,此计数器也会增加,当我单击“确定”时,响应会启动,其数量等于我打开模式的次数。
我认为ajax请求应该负责,但是我删除了它,并且仍然得到了多个响应,正如我从控制台看到的那样。
所以我认为模态和我添加的按钮有问题,但我不知道是什么
以下是模式的html:
<!-- Modal 1 -->
<div class="modal fade" id="Modal1" role="dialog">
<div class="modal-dialog">
<!-- Modal contents-->
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal">×</button>
<h4 class="modal-title">Are you sure?</h4>
</div>
<div class="modal-body">
<p id="mBody1"></p>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default ok1" data-dismiss="modal">OK</button><button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
</div>
</div>
</div>
</div
$('.dr1').click(function(){
$('#Modal1').modal();
$('.modal-header, .modal-footer').css("border-color", $(this).css("background-color"));
$.ajax({
type: 'GET',
url: '/resources/doctors.json',
dataType: 'json',
success: function(doctors) {
$('#mBody1').html('You are requisting a reservation for<br/>Dr. ' +doctors[0].name+ '<br/>Your number is ' +(doctors[0].nNo+1));
$('.ok1').click(function() {
doctors[0].nNo=doctors[0].nNo+1;
console.log(doctors);
$.ajax({
type: 'POST',
url: '/resources/newTic.php',
data: {data: JSON.stringify(doctors), drNo: "1" },
dataType: 'json',
success: function(msg) {
console.log(msg);
}
});
});
}
});
});
&时代;
你确定吗?
奥克洛斯
这是因为在每个.success
中,您都在添加另一个$('.ok1')。单击(function(){
-您应该研究jQuery文档,看看如何在添加它之前删除单击事件是的,谢谢@JaromandaX我添加了$('.ok1')。关闭(“单击”)
到的末尾。单击事件,它就工作了!很抱歉,在成功
函数的末尾它不工作,我将它放在$('.ok1')中。单击()
事件函数如果我关闭模式并重新打开它,它会生成多个响应。因此我必须将它放在$('.dr1')的末尾。单击()
事件函数。仍然有问题!它有时不会增加数字,特别是当我只是切换模式而没有单击“确定”时。如果我这样做(切换模式)一段时间,我会再次收到多个响应:(