我想在提交表单之前给出确认框即jconfirm()
。如果用户点击是,则应提交表单,如果用户点击否,则retrun false
。我按以下方式执行
jConfirm('Do you', 'Confirmation Dialog', function(r) {
if(r){
$("#person-form").submit();
}})
return false;
但表单未提交,如果我删除return false;
,则jconfirm框不会停留,直到我们点击是或否按钮
更新:我这样解决了:
var pcount = 1;
$('form').submit(function(e){
if(pcount == 1) {
if(($("#SecondPrime").val() == 1) && ($("#Person_PersonTypeCode").val() == 'ADULT')) {
e.preventDefault();
jConfirm("Do you wanna say ?", "confirmation", function(result){
if(result) { pcount++; }
else {
pcount++;
$('form').submit();
}
});
}
}
});
答案 0 :(得分:1)
您需要取消提交事件并使用event-handler free DOM submit提交自己:
注意:只有在表单
中没有任何名为name="submit"
的情况下才能执行此操作
$("#person-form").on("submit", function(e) {
e.preventdefault(); // stop submission
jConfirm('Do you', 'Confirmation Dialog', function(r) {
if (r) {
$("#person-form")[0].submit(); // DOM form
}
});
});
更新:我放弃了搞清楚你的jConfirm需要什么。代码here需要页面上的元素才能工作。
$("someSelector").jConfirm(....)
如果你想让你的jConfirm工作,请发布你使用的WHACT jConfirm,哪个版本(旧版本不适用于jQuery1.9 + jConfirm v2可能会这样做。
与此同时,这是一个使用jquery-confirm的版本:
$(function() {
$("#person-form").on("submit", function(e) {
e.preventDefault(); // stop submission
$.confirm({
title: 'Are you sure?',
content: 'It will submit!',
buttons: {
confirm: function() {
$("#person-form")[0].submit(); // DOM form
},
cancel: function() {
$.alert('Canceled!');
}
}
});
});
});

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/jquery-confirm/3.2.0/jquery-confirm.min.css" />
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery-confirm/3.2.0/jquery-confirm.min.js"></script>
<form id="person-form" action="javascript:alert('submitted')">
<input type="submit" />
</form>
&#13;
答案 1 :(得分:-1)
你可以试试这个
jConfirm('Do you', 'Confirmation Dialog', function(r) {
if(!r){
return;
}else {
$("#person-form").submit();
}
});
否则您可以在此下方使用制作自定义确认框 http://jqueryui.com/dialog/#modal-confirmation
答案 2 :(得分:-1)
试试这个:
$('#person-form').submit(function (e) {
e.preventDefault();
jConfirm('Do you', 'Confirmation Dialog', function(r) {
if(r == true)
{
$('#person-form').submit();
}
else
{ /*Handle else case here*/ }
});
});