好吧,当用户从下拉列表中选择选项时,我有一个jQuery chnage
事件。当他们选择任何列表时,它会在beforeSend
函数中显示2个输入框。像吼叫:
beforeSend : function () {
$('.order_accept_msg').html('<h4>Are you sure to proceed ?</h4><input type="submit" class="btn btn-danger" name="submit" id="yes" value="YES PROCEED"> <input type="submit" class="btn btn-primary" id="now" name="submit" value="NO">');
return false;
},
现在我想调用实际的ajax,如果按下'YES PROCEED'按钮。但我不知道我该怎么做?是否有更少的jQuery代码来完成整个过程?
jQuery代码:
<script type="text/javascript">
$(document).ready(function(){
$(".order_accept").change(function(event) {
event.preventDefault();
$('.order_accept_msg').show();
var poid = $(this).find(':selected').data('poid');
var oid = $('.order_accept').val();
var token = <?php echo "'".generate_Form_Token('order_accept')."';"; ?>
$.ajax({
url : <?php echo "'".SITE_URL."'"; ?> + 'order-accept',
type : 'POST',
dataType : 'html',
data : {
'poid' : poid,
'oid' : oid,
'_token' : token,
},
beforeSend : function () {
$('.order_accept_msg').html('<h4>Are you sure to proceed ?</h4><input type="submit" class="btn btn-danger" name="submit" id="yes" value="YES PROCEED"> <input type="submit" class="btn btn-primary" id="now" name="submit" value="NO">');
alert( $('#yes').text() );
return false;
},
success : function (result) {
$('.order_accept_msg').html(result);
setTimeout(function(){
$('.order_accept_msg').hide();
}, 3000);
}
});
});
});
</script>
答案 0 :(得分:0)
在发出ajax请求之前调用beforeSend
回调,但在调用$.ajax
时,它无法取消请求。
如果要有条件地运行$.ajax
调用,请在ajax调用之前添加条件
$(document).ready(function() {
$(".order_accept").change(function(event) {
event.preventDefault();
var confirmH4 = $('<h4 />', {
text : 'Are you sure to proceed ?'
}),
confirmBtn1 = $('<input />', {
type : 'button',
'class' : 'btn btn-danger',
value : 'YES PROCEED',
on : {
click : doAjax
}
}),
confirmBtn2 = $('<input />', {
type : 'button',
'class' : 'btn btn-danger',
value : 'NO'
});
$('.order_accept_msg').empty().append(confirmH4, confirmBtn1, confirmBtn2).show();
});
function doAjax(poi, oid, token) {
var acc = $(this).closest('.order_accept');
var poid = acc.find(':selected').data('poid');
var oid = acc.val();
var token = '<?php echo generate_Form_Token('order_accept'); ?>';
$.ajax({
url : '<?php echo SITE_URL; ?>order-accept',
type : 'POST',
dataType : 'html',
data : {
poid : poid,
oid : oid,
_token : token,
},
success: function(result) {
$('.order_accept_msg').html(result);
setTimeout(function() {
$('.order_accept_msg').hide();
}, 3000);
}
});
}
});