0

我有一个嵌套表单的 jquery 对话框,如下所示:

<!-- Store Location Dialog -->
        <div id = "changeDialog">
            <form id = "form" method = "post" action = "Default.aspx" \> 
                <input type = "text" id = "changeText" name = "changeLocation" /> 
                <input type = "button" id = "changeStoreDialogSubmit" value = ""  onclick = "dialogSubmitForm()"/> 
            </form>
        </div>

单击按钮时可能会发生两种情况。一个实例需要页面加载,而另一个则不需要。我的非页面加载实例正常工作,但另一个没有。这是dialogSubmitForm()我的方法:

function dialogSubmitForm() {

    if (!placeHolderVisibility) {

        $('#changeStoreDialogSubmit').submit();
    }
    else /
    {
        //Working code
    }
}

这是对话框:

function createDialog() {
    //Creates a new dialog
    $('#changeDialog').dialog({
        resizable: false,
        title: '<span class="ui-icon ui-icon-home"></span> Enter Info',
    });
}

当我测试页面时,我可以看到$('#changeStoreDialogSubmit').submit();被击中,但从来没有页面加载。为什么会发生这种情况?

4

2 回答 2

0

您需要调用.submit()form而不是提交表单的按钮:

function dialogSubmitForm() {

    if (!placeHolderVisibility) {

        $('#form').submit();
    }
    else 
    {
        //Working code
    }
}
于 2011-04-20T18:38:49.540 回答
0

submit()方法只能在form元素上调用。您的表单的 ID 为form,因此您需要更改:

$('#changeStoreDialogSubmit').submit();

对此:

$('#form').submit();

话虽如此,我推测您正在为您的应用程序使用 ASP.NET,并且您确实需要确保您没有嵌套form标签,因为默认情况下 Web 窗体会form在您的页面上为您抛出一个标签。

于 2011-04-20T18:39:17.170 回答