當我激活生成DatePicker的jQuery-UI腳本時,我得到一個神祕的(對我)JavaScript錯誤。它工作,如果我在Visual Studio中,並告訴它忽略錯誤。所選日期根據需要生成並扔入文本框中。但爲什麼這個錯誤? 只有當存在驗證錯誤並且涉及時纔會發生。奇怪的Javascript錯誤與ASP.NET和jQuery與驗證控件
好的,這裏是代碼。首先,asp.net頁面標記:
<asp:TextBox ID="PickerDateTextBox" runat="server" Width="100" ></asp:TextBox>
<asp:RequiredFieldValidator ID="RequiredFieldValidator2" runat="server"
ErrorMessage="This is required"
ControlToValidate="PickerDateTextBox"
>
</asp:RequiredFieldValidator>
這裏是jQuery的:
<script type="text/javascript">
$(document).ready(function() {
$("#PickerDateTextBox").datepicker({
showOn: "button",
buttonImage: "images/picker.gif",
buttonImageOnly: true
});
});
</script>
當然包括並被:
<script src="Scripts/jquery-1.7.1.js"></script>
<script src="Scripts/jquery-ui-1.10.2.js"></script>
別擔心,我已經得到了這個即使使用jQuery 1.9。
錯誤不是內的jQuery或jQuery的用戶界面,但在微軟的JavaScript,在這裏:
var vals;
if (typeof(targetedControl.Validators) != "undefined") {
vals = targetedControl.Validators;
}
else {
if (targetedControl.tagName.toLowerCase() == "label") {
targetedControl = document.getElementById(targetedControl.htmlFor);
vals = targetedControl.Validators;
}
}
var i;
for (i = 0; i < vals.length; i++) {
ValidatorValidate(vals[i], null, event);
}
ValidatorUpdateIsValid();
將引發錯誤就行,其中「我< vals.length;」發生,錯誤是:
Unhandled exception at line 172, column 17 in http://localhost...blah blah blah
0x800a138f - Microsoft JScript runtime error: Unable to get value of the property 'length': object is null or undefined
再次,這不會發生,如果我沒有驗證控制那裏(任何種類)。
任何想法發生了什麼以及我如何解決它?
編輯補充:
正如@史蒂夫 - 倫斯指出,在.NET 4.5中運行時和jQuery 1.9.1它運行正常。也在.NET 4.0上。不幸的是,由於服務器的限制,我需要它在.NET 3.5上工作(我們的Web服務器是Windows 2003,無法安裝.NET 4.5,我想我可以設置應用程序運行.NET 4.0,但@ Steve-Wellens已經交付的變通所以這是很好走的,是
似乎與.NET 4.5,jQuery 1.9和IE 10一起工作。 –
好的,也許我有一些類型的版本問題正在進行。我看到VS2012現在有更新2.將更新,確保jQuery 1.9正常運行。雖然這是針對由於服務器版本而無法在.NET 4.5中部署的產品。我需要它在.NET 3.5中工作。 – Cyberherbalist
我針對.NET 3.5並重現了這個問題......但是當我在日期選擇器中選擇一個日期時出現錯誤。 –