0x800a138f-JavaScript运行时错误:无法获取属性';价值';指未定义的或空的引用
我已经编写了一个javascript代码来比较两个文本框中的两个日期0x800a138f-JavaScript运行时错误:无法获取属性';价值';指未定义的或空的引用,javascript,html,asp.net,Javascript,Html,Asp.net,我已经编写了一个javascript代码来比较两个文本框中的两个日期 function CompareDates() { var fdate = document.getElementById('txtFromDate'); var edate = document.getElementById('txtToDate'); var FromDate = fdate.value.split('/');
function CompareDates() {
var fdate = document.getElementById('txtFromDate');
var edate = document.getElementById('txtToDate');
var FromDate = fdate.value.split('/');
var EndDate = edate.value.split('/');
var val = 'false';
if (parseInt(FromDate[2]) < parseInt(EndDate[2])) {
val = 'true';
return true;
}
else if (parseInt(FromDate[2]) == parseInt(EndDate[2])) {
if (parseInt(FromDate[0]) < parseInt(EndDate[0])) {
val = 'true';
return true;
}
else if (parseInt(FromDate[0]) == parseInt(EndDate[0])) {
if (parseInt(FromDate[1]) <= parseInt(EndDate[1])) {
val = 'true';
return true;
}
}
}
if (val == "false") {
alert("FromDate Always Less Than ToDate");
return false;
}
}
函数CompareDates(){
var fdate=document.getElementById('txtFromDate');
var edate=document.getElementById('txtToDate');
var FromDate=fdate.value.split('/');
var EndDate=edate.value.split('/');
var val='false';
if(parseInt(FromDate[2])
var fdate = document.getElementById('txtFromDate');
var edate = document.getElementById('txtToDate');
问题在于txtFromDate
和txtToDate
是控件的服务器名称,而不是客户端名称(从浏览器中查看页面的源代码)
试试这个:
var fdate = document.getElementById('<%=txtFromDate.ClientID%>');
var edate = document.getElementById('<%=txtToDate.ClientID%>');
var fdate=document.getElementById(“”);
var-edate=document.getElementById(“”);
请试试这个
document.getElementById('<%=txtFromDate.ClientID %>')
document.getElementById(“”)
更改代码,如下所示:
function CompareDates() {
var fdate = document.getElementById('<%=txtFromDate.ClientID %>');
var edate = document.getElementById('<%=txtFromDate.ClientID %>');
var FromDate = fdate.value.split('/');
var EndDate = edate.value.split('/');
var val = 'false';
if (parseInt(FromDate[2]) < parseInt(EndDate[2])) {
val = 'true';
return true;
}
else if (parseInt(FromDate[2]) == parseInt(EndDate[2])) {
if (parseInt(FromDate[0]) < parseInt(EndDate[0])) {
val = 'true';
return true;
}
else if (parseInt(FromDate[0]) == parseInt(EndDate[0])) {
if (parseInt(FromDate[1]) <= parseInt(EndDate[1])) {
val = 'true';
return true;
}
}
}
if (val == "false") {
alert("FromDate Always Less Than ToDate");
return false;
}
}
函数CompareDates(){
var fdate=document.getElementById(“”);
var-edate=document.getElementById(“”);
var FromDate=fdate.value.split('/');
var EndDate=edate.value.split('/');
var val='false';
if(parseInt(FromDate[2]) 如果(parseInt(FromDate[1])您的javascript位于外部JS文件中(它应该位于该文件中),则发布的解决方案将不起作用。但您可以为文本字段指定一个唯一的类名,并修改代码如下:
<asp:TextBox ID="txtFromDate" runat="server" Width="150px" CssClass="txtFromDate" />
<asp:TextBox ID="txtToDate" runat="server" Width="150px" CssClass="txtToDate" />
您缺少id参考的#
。
更改为:
var fdate = document.getElementById('txtFromDate');
致:
我对上述陈述的看法是错误的。
我能够修复jquery代码中的相同错误,其中我缺少
getElementById
不需要这个特殊字符。什么版本的“IE”?您尝试过用开发工具调试它吗?
var fdate = document.getElementsByClassName('txtFromDate')[0];
var edate = document.getElementsByClassName('txtToDate')[0];
var fdate = document.getElementById('txtFromDate');
var fdate = document.getElementById('#txtFromDate');