2013-04-18 39 views
1

當我激活生成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已經交付的變通所以這是很好走的,是

+0

似乎與.NET 4.5,jQuery 1.9和IE 10一起工作。 –

+0

好的,也許我有一些類型的版本問題正在進行。我看到VS2012現在有更新2.將更新,確保jQuery 1.9正常運行。雖然這是針對由於服務器版本而無法在.NET 4.5中部署的產品。我需要它在.NET 3.5中工作。 – Cyberherbalist

+0

我針對.NET 3.5並重現了這個問題......但是當我在日期選擇器中選擇一個日期時出現錯誤。 –

回答

1

這裏的修復/黑客/雜牌(添加一個空ONSELECT處理程序):

$("#PickerDateTextBox").datepicker({ 
    showOn: "button", 
    onSelect: function() {}, 
    buttonImage: "images/picker.gif", 
    buttonImageOnly: true 
}); 

和解釋: Jquery datepicker popup not closing on select date in IE8