ASP.Net 3.5应用程序。
日期选择器显示,当我尝试单击日期时,IE 8(我没有检查其他版本)抛出“长度为空或不是对象”错误。它将日期放在文本框中,但随后抛出错误。当我点击日期选择器区域时,它会正确隐藏而不会出现任何错误。 FF行为正常。
错误位于生成的webresource_3.axd文件中的以下行(第175行)。当我取出所有3个验证器然后它正常工作。
var i;
for (i = 0; i < vals.length; i++) {
ValidatorValidate(vals[i], null, event);
}
网页代码:
主要参考
<scriptsrc="Scripts/jquery-1.6.2.min.js" type="text/javascript"></script>
<linkhref="Scripts/jquery.ui/jquery-ui-1.8.7.custom.css" rel="stylesheet" type="text/css" />
<scriptsrc="Scripts/jquery.ui/jquery-ui-1.8.7.custom.js" type="text/javascript"></script>
页面HTML
<tableid="tbl_control" cellspacing="0" cellpadding="0" border="0">
<tr>
<td align="center">
<input name="ctl00$ContentPlaceHolder1$dtStartDate$txtDate" type="text" value="08/05/2011" size="12" id="ctl00_ContentPlaceHolder1_dtStartDate_txtDate" class="StandardText" />
</td>
<td align="center">
<span id="ctl00_ContentPlaceHolder1_dtStartDate_RegularExpressionValidator1" class="StandardText" style="color:Red;display:none;">Enter valid Date</span>
<span id="ctl00_ContentPlaceHolder1_dtStartDate_CompareValidator1" class="StandardText" style="color:Red;display:none;">*</span>
<span id="ctl00_ContentPlaceHolder1_dtStartDate_RequiredFieldValidator1" class="StandardText" style="color:Red;display:none;">Date should not be blank</span>
</td>
</tr>
</table>
javascript :ClientID和ResolveUrl用于获取文本框ID和图片路径。
<scripttype="text/javascript">
$(document).ready(function() {
$(".ui-datepicker-trigger").show();
$('#ctl00_ContentPlaceHolder1_dtStartDate_txtDate').datepicker({showOn: 'button',
buttonImage: '/Source/images/SmallCalendar.gif',
buttonImageOnly: true});
});
</script>
我还实现了以下内容,导致了同样的问题: http://www.kelvinluck.com/assets/jquery/datePicker/v2/demo/
如果单击并在文本框中显示的日期相同,那么我没有这个问题。
由于
答案 0 :(得分:0)
关于this jQuery UI bug ticket的评论4指出了4个可能的解决方案。他们说第一个: “将一个空的onSelect事件添加到datepicker” 为他们工作。