jquery-ui对话框未在IE中发布

时间:2013-04-17 05:27:45

标签: jquery asp.net jquery-ui

我有一个jquery ui对话框,其中包含一堆asp.net控件。对话框中还有一个runat =“server”按钮,用于将表单发布到服务器。遗憾的是,这在IE中不起作用。在Chrome中,它按预期工作。以下是相关的代码片段......

$("#applicationFormDialog").dialog({
                autoOpen: false,
                width: 780,
                height: 550,
                title: 'Please enter your career details',
                open: function (type, data) {
                    $(".uploadYourResume").css('display', 'none');
                    clearAllControls();
                    var indexToSelect = $('#applicationFormDialog').data('indexVal');
                    $("#" + "<%=ddlPosition.ClientID %>" + " option")[indexToSelect].selected = true;
                    debugger;
                    $(this).parent().appendTo($("form:first"));
                },
                beforeClose: function (event, ui) {
                    clearAllControls();
                },
                resizable: false
        });

jQuery UI版本= 1.10.1 jQuery版本= 1.9.1

如果您需要我还有其他任何内容,请告诉我。

更新:如果我只使用runat ='server'放置一个普通的提交按钮,这是有效的,但我在提交之前验证了客户端的表单,这就是我相信的地方问题是。这是客户端验证方法。

function validateForm() {
            // Clear all error divs...
            $(".errorSpan").css('display', 'none');

            // Build the array.            
            var arrayOfCtrls = new Array();

            arrayOfCtrls.push(new control("<%= txtName.ClientID %>", "", "textbox", 0));                        // Name
            arrayOfCtrls.push(new control("<%= txtEmail.ClientID %>", "", "textbox", 0));                       // Email
            arrayOfCtrls.push(new control("<%= txtCity.ClientID %>", "", "textbox", 0));                        // City
            arrayOfCtrls.push(new control("<%= ddlState.ClientID %>", "", "dropdown", 0));                      // State
            arrayOfCtrls.push(new control("<%= uploadResume.ClientID %>", "fileUploadErrorSpan", "file", 0));   // Resume
            arrayOfCtrls.push(new control("<%= ddlPosition.ClientID %>", "", "dropdown", 0));                   // Position
            arrayOfCtrls.push(new control("<%= ddlQualification.ClientID %>", "", "dropdown", 0));              // Qualification
            arrayOfCtrls.push(new control("<%= ddlExperience.ClientID %>", "", "dropdown", 0));                 // Experience


            if ($("#" + "<%=ddlExperience.ClientID %>").val() != "Fresher") {
                arrayOfCtrls.push(new control("<%= txtCurrCompany.ClientID %>", "", "textbox", 0));     // Current Company
                arrayOfCtrls.push(new control("<%= txtWorkingSince.ClientID %>", "", "textbox", 0));    // Working since                        
                arrayOfCtrls.push(new control("<%= txtCurrLocation.ClientID %>", "", "textbox", 0));    // Current Location            
            }

            if (!controlsToValidate(arrayOfCtrls)) {
                return false;
            }
            // Check email address
            if (!validEmail((document.getElementById("<%= txtEmail.ClientID %>")).value)) {
                document.getElementById("<%= txtEmail.ClientID %>").focus();
                document.getElementById("<%= txtEmail.ClientID %>").title = "Please enter a proper email address.";
                return false;
            }
            return true;
        }

这些是对话框中的按钮

            <asp:Button ID="btnSubmitForm" runat="server" Text="Submit" OnClientClick="return validateForm()" OnClick="submitForm_Click" />
            <input type="button" id="btnClearFields" value="Clear" />
            <asp:Button ID="btnClear" runat="server"/>

我添加的最后一个按钮,用于检查回发是否适用于普通按钮,并且工作正常。

UPDATE#2:有一个问题,我从脚本返回true后会有一些jquery方法被调用。

1 个答案:

答案 0 :(得分:0)

好的我自己会回答这个问题,因为这里没有发布任何内容,部分原因是我提供的信息不足

在我制作的表单中,有一个我隐藏的文件上传控件,因为我想要设置样式。然后,我放置了两个按钮,选择... 清除

无论如何according to this thread如果隐藏了文件上传控件,IE将不会发布到服务器。这就是发生的事情。

我无法知道,这就是问题,所以我很抱歉原帖上缺少信息。