0x800a138f-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('/');

我已经编写了一个javascript代码来比较两个文本框中的两个日期

     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');