我正在尝试在表单提交前显示确认对话框:
form.off('submit').submit()
成功后,我执行以下操作:$('body').on('submit', 'form[data-confirm-dialog-text]'
,但继续获取确认对话框,这意味着表单不是入站。
如果我将$('form[data-confirm-dialog-text]').on('submit',
更改为public function actionDownload($id) {
header("Content-type:application/pdf");
........
,一切正常。有什么区别,我做错了什么?
答案 0 :(得分:1)
来自jQuery的.off()
文档:
.off()
方法删除了附加.on()
的事件处理程序。不带参数调用.off()
会删除附加到元素的所有处理程序。通过提供事件名称,命名空间,选择器或处理函数名称的组合,可以在元素上删除特定事件处理程序。 当给出多个过滤参数时,提供的所有参数必须匹配要删除的事件处理程序。
这意味着您应该使用.off()
与.on
相同的参数。所以,试着改变:
form.off('submit').submit();
要:
$('body').off('submit', 'form[data-confirm-dialog-text]');
form.submit();
答案 1 :(得分:1)
事件绑定到 body
,您应该使用从 body
中删除事件。所以改变,
form.off('submit')。submit()


& #xA; 到


 $('body')。off('submit','form [data-confirm-dialog-text]' );
 form.submit();
 代码>