Javascript 如何在div卸载时使用ajax发送复选框而不单击任何提交按钮
我试图在我的fancybox上设置一个“完成”按钮,当用户选中复选框时,它将被标记为“完成”,复选框值将在fancybox上的div卸载后提交,并且没有可单击的提交按钮,该值将仅在fancybox中的div卸载后发送,我使用ajax提交该值 问题是当fancybox卸载时,“函数donerem()”即使在我使用onbeforeunload时也不会执行 ajaxscript:这应该在fancybox关闭后触发Javascript 如何在div卸载时使用ajax发送复选框而不单击任何提交按钮,javascript,ajax,checkbox,fancybox,onbeforeunload,Javascript,Ajax,Checkbox,Fancybox,Onbeforeunload,我试图在我的fancybox上设置一个“完成”按钮,当用户选中复选框时,它将被标记为“完成”,复选框值将在fancybox上的div卸载后提交,并且没有可单击的提交按钮,该值将仅在fancybox中的div卸载后发送,我使用ajax提交该值 问题是当fancybox卸载时,“函数donerem()”即使在我使用onbeforeunload时也不会执行 ajaxscript:这应该在fancybox关闭后触发 var R = jQuery.noConflict(); //REMINDER don
var R = jQuery.noConflict();
//REMINDER done Submit ===============================================================================
function donerem(){
if ($('input[name=done]').attr('checked') === 'checked') {
alert ('checked');
var ID = $(this).attr("id");
var dataString = 'msg_id=' + ID;
R.ajax({
type: "POST",
url: "database/clientpanel/wall/donerem.php",
data: dataString,
cache: false,
success: function(html){
alert ('done');
var div = document.getElementById("rem" + ID);
div.parentNode.removeChild(div);
}
});
}
else
alert ('not checked');
return false;
});
}
fancybox:完成按钮
<div align="left" class="post_box" onbeforeunload="donerem()">
<input type="checkbox" id="<?php echo $id; ?>" name="done">
</div>
不完全确定我是否理解了这个问题。
要检查是否已选中,可以使用以下选项:
if ($('input[name=done]').attr('checked') === 'checked') {
// selected
}
else {
// not selected
}
你可以这样把它缩短:
var selected = ($('input[name=done]').attr('checked') === 'checked') ? true : false;
当fancybox关闭时,您需要启动AJAX调用。
您可以通过如下方式为事件分配侦听器来完成此操作:
$("#some-element").fancybox({
'scrolling' : 'no',
'titleShow' : false,
'onClosed' : function() {
// make AJAX request
donerem();
}
});
从fancybox博客中找到以下代码:我正在尝试在不使用提交按钮的情况下向aajax发送一个值。您的问题不太清楚您具体在使用哪一位。你能澄清一下主要问题是什么吗?