我有一个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方法被调用。
答案 0 :(得分:0)
好的我自己会回答这个问题,因为这里没有发布任何内容,部分原因是我提供的信息不足。
在我制作的表单中,有一个我隐藏的文件上传控件,因为我想要设置样式。然后,我放置了两个按钮,选择... 和清除。
无论如何according to this thread如果隐藏了文件上传控件,IE将不会发布到服务器。这就是发生的事情。
我无法知道,这就是问题,所以我很抱歉原帖上缺少信息。