jquery ui-dialog表单提交不起作用

时间:2014-09-27 17:28:50

标签: jquery forms user-interface submit

var currentForm;
$("#confirm").dialog({
    autoOpen: false,
    title: "First we must ask you!",
    resizable: false,
    width:500,
    height:190,
    modal: true,
    buttons: {
        'Submit for God sake!': function() {
            currentForm.submit();
        },
        Cancel: function() {
            $(this).dialog('close');
        }
    }       
});
$('.clientForm').submit(function(e){
    currentForm = $(this);
    $('#confirm').dialog('open');
    return false;
});

您好。

我有一张表格,必须在确认后提交。要执行此操作,请使用ui-dialog方法。问题是,在ui对话框出现后,表单不想提交,访问者必须点击确认按钮。

当我查看代码时,似乎是正确的。

此处指向JSFiddle

的链接

2 个答案:

答案 0 :(得分:1)

由于表单提交事件中的此行return false;,因此未发布。这导致表单不发布。

$('.clientForm').submit(function(e){
        currentForm = $(this);
        $('#confirm').dialog('open');
        return false; // this line will always stop your form from posting
    });

提交提交按钮ID并写下其点击事件:

 <button id="go" type="submit">Go there</button>

jquery事件:

$('#go').click(function(e){
        currentForm = $(this).closest("form");
        $('#confirm').dialog('open');
        return false;
    });

FIDDLE DEMO

另一种方法是制作按钮类型button而不是submit,这不会导致您的表单在点击时提交:

<button id="go" type="button">Go there</button>

和jquery:

$('#go').click(function(e){
        currentForm = $(this).closest("form");
        $('#confirm').dialog('open'); // no need to return false as button type is not submit
    });

DEMO

答案 1 :(得分:0)

除了$('.clientForm').submit(function(e){之外,一切都是正确的。

$('.clientForm').submit(function(e){替换为$('.clientForm').click(function(e){。这应该有用。