我有以下脚本:
var submited = false;
$('.trx-form').one('submit', function(e){
if(!submited){
e.preventDefault();
var i = 0, $this = $(this);
(function conf(){
$.confirm({
title: 'Confirm Action',
content: 'Yakin data yang dimasukan sudah benar?',
closeIcon: 'fa fa-close',
theme: 'dark',
confirm: function(){
if(i < 2){
i++; submited = true;
conf();
}else{
$('.trx-form').trigger('submit');
}
},
cancel: function(){
e.preventDefault();
}
});
})();
}
});
首次点击提交按钮,确认对话框弹出3次,之后表格应该在没有弹出窗口的情况下被提交。如果我再次单击“提交”按钮,它会正常工作,但不能使用$('.trx-form').trigger('submit')
。有谁知道这个问题?
答案 0 :(得分:1)
因为您使用 $()。一个功能,这意味着可以点击一次, $(&#34;&#34;)。on(&# 34;&#34)强>
答案 1 :(得分:0)
one
仅执行一次,并在第一次执行后取消绑定事件。
尝试使用on
绑定事件并根据需要处理多次点击。
答案 2 :(得分:0)
尝试使用这样:
var submited = false;
$(document).on("submit", ".trx-form", function(e) {
$this = $(this);
if(!submited){
e.preventDefault();
var i = 0,
(function conf(){
$.confirm({
title: 'Confirm Action',
content: 'Yakin data yang dimasukan sudah benar?',
closeIcon: 'fa fa-close',
theme: 'dark',
confirm: function(){
if(i < 2){
i++; submited = true;
conf();
}else{
$this.submit();
}
},
cancel: function(){
e.preventDefault();
}
});
})();
}
});
答案 3 :(得分:0)
感谢所有回答我问题的人。我在
的帮助下解决了这个问题var submited = false;
$('.trx-form').on('submit', function(e){
if(!submited){
e.preventDefault();
var i = 0, $this = $(this);
(function conf(){
$.confirm({
title: 'Confirm Action',
content: 'Yakin data yang dimasukan sudah benar?',
closeIcon: 'fa fa-close',
confirmButton: 'Ok',
cancelButton: 'Cancel',
confirmButtonClass: 'btn btn-primary',
cancelButtonClass: 'btn btn-danger',
theme: 'black',
confirm: function(){
if(i < 2){
i++; submited = true;
conf();
}else{
$('[name="submit"], #_submit').click();
}
},
cancel: function(){
submited = false;
}
});
})();
}
});
首先,我不是在submit()
或trigger('submit')
执行click()
,而是在提交按钮上执行on()
。第二,如果用户点击取消按钮然后重新提交表单,我会忘记弹出窗口重新出现,因此我使用one()
代替one()
,因为描述的--help
仅处理事件一次,它会在第二次机会中解开。