当我激活生成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并重现了这个问题......但是当我在日期选择器中选择一个日期时出现错误。 –