我有jConfirm的问题,它应该像普通的javascript confim框一样工作,但它没有,这是一个例子
<input type="submit" value="click" onClick="return jConfirm('are you sure?')">
如果我使用正常确认它会停止脚本,直到给出响应,然而jConfirm但是,即使没有给出答案,表格仍在提交,是否有任何变通办法?
先谢谢
EDIT1:使用Slaks的想法我试图调整默认的jAlert插件,这就是我得到的。
submit: function(message, title, btnId) {
$.alerts._show(title, message, null, 'confirm', function(result, btnId) {
if (result){
var form = $('#'+btnId).closest('form');
form.trigger('submit');
}
else
return false
});
},
问题是我不知道如何将'btnId'变量传递给_show回调函数,有什么想法吗?
答案 0 :(得分:0)
像这样:
<input type="submit" value="click" onClick="jConfirm('are you sure?', function(r) { if (r) document.forms[something].submit(); }); return false;">
将它移到单独的处理程序会好得多:
$(':submit').click(function(e) {
e.preventDefault(); //Don't submit until the user hits yes
var form = $(this).closest('form');
jConfirm('Are you sure?', function(r) {
if (r) form.submit();
});
});
答案 1 :(得分:0)
最后我修复了这个,发送按钮按钮(调用函数时带'this')我可以获取表单然后提交它,我也可以附加一个隐藏的输入按下按钮所以我可以用PHP执行适当的操作。
submit: function(message, title, btnObj) {
$.alerts._show(title, message, null, 'confirm', function(result) {
if (result){
var form = $(btnObj).closest('form');
var input = '<input type="hidden" name="action" value="'+$(btnObj).attr('value')+'">';
$(form).append(input);
form.trigger('submit');
}
else
return false
});
},
答案 2 :(得分:0)
你也可以做一个普通的表格然后:
$('.submitButton').click(function(event) {
if(!confirm('Are you sure you want to delete this customer?')) {
event.preventDefault();
}
});
答案 3 :(得分:0)
您遇到的麻烦源于您尝试使用异步函数,就好像它是同步的一样。我在my answer to a similar question中广泛讨论了这个问题。
普通JavaScript confirm()
适用于您的情况仅,因为它是同步的。使用JavaScript和HTML在浏览器中创建自己的自定义同步确认对话框只是不可能。
要使用自定义对话框确认提交表单,您需要:
false
或onsubmit
处理程序返回onclick
。myForm.submit()
。