具有提交问题的嵌套表单的Jquery对话框

时间:2011-04-20 18:27:48

标签: javascript jquery html jquery-ui jquery-dialog

我有一个带有嵌套表单的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();被点击,但是从来没有页面加载。为什么会这样?

2 个答案:

答案 0 :(得分:0)

您需要在.submit()上致电form,而不是提交表单的按钮:

function dialogSubmitForm() {

    if (!placeHolderVisibility) {

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

答案 1 :(得分:0)

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

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

对此:

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

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