您好我想使用模态框插件确认提交表单,但我有以下问题:
当你点击我的HTML表单模式框中的提交按钮但是点击提交表单后没有提交 - 只是什么都不做。我需要改变什么?
$('#mediamall-convert-form').submit(function() {
// Reset errors
$('#convert-sum-error').hide();
// New validation
valid_form = true;
sum = parseFloat($('#convert-sum').val());
if ((sum == '') ||
(sum < 1) ||
(sum > < ?php echo $author - > balance; ? > ) ||
(sum % < ?php echo __md_cost_per_credit__; ? > != 0) ||
(isNaN(sum)))
{
valid_form = false;
$('#convert-sum-error').show();
}
if (valid_form)
{
//return confirm('<?php echo mmll_are_you_sure_you_want_to_continue; ?>?');
// $('.button5').click(function(){
$.confirm({
'title': 'Delete Confirmation',
'message': 'You are about to delete this item. <br />It cannot be restored at a later time! Continue?',
'buttons': {
'Yes': {
'class': 'blue',
'action': function() {
return true;
}
},
'No': {
'class': 'gray',
'action': function() {
} // Nothing to do in this case. You can as well omit the action property.
}
}
});
// });
}
return false;
});
答案 0 :(得分:1)
您始终从false
处理程序返回submit
:
$('#mediamall-convert-form').submit(function () {
// some logic
// show the modal dialog
return false;
});
对话框的return true;
选项中的Yes
没有按照您的想法进行操作。它只从它存在的函数返回:
function(){
return true;
}
从整个提交处理程序返回 。 (返回语句不起作用,它们只退出调用它们的函数的范围,而不是调用堆栈上的父函数。)
我不熟悉您正在使用的“确认”插件,但我怀疑它是异步运行的,因此总是执行最后的return false;
,并且回调中的return true;
只是从无到有,无所作为。在回调中,您可能不希望返回,而是希望提交表单。类似的东西:
function () {
$('#mediamall-convert-form').submit();
}
然而,您将覆盖提交处理程序,因此这可能会在堆栈上创建无限循环的提交调用。我们绝对不希望如此。因此,您可能需要将整个处理程序更改为按钮单击处理程序(或任何适当的),而不是表单提交处理程序。类似的东西:
$('#mediamall-convert-form input[type=submit]').click(function () {
// handler
});