调用模式窗口,将javascript代码放在aspx页中可以正常运行,但是将代码放在js文件中时报错: 无法设置未定义或 null 引用的属性“innerText” 引用路径没有错,因为可以弹出窗口,但是获取返回值时出错,代码如下:function ChooseUser() {
    var getVaule = window.showModalDialog("ChooseUserPage.aspx", "", 'dialogWidth=' + 900 + 'px;dialogHeight=' + 600 + 'px;help:no;dialogLeft=' + 150 + ';dialogTop=' + 50);
    if (getVaule != null) {
        var obj = getVaule;
        document.getElementById("<%=txtUserName.ClientID%>").innerText = obj.name; //这里报错,无法找到innerText
        document.getElementById("<%=hidUserID.ClientID%>").innerText = obj.ID;
    }
}
求解啊!

解决方案 »

  1.   

    大神你又没有想过ASP.NET数据引擎是什么心情,ASP.NET会在页面上留下的脚本进行解析,而不会在你的普通文件夹里面进行解析处理,ASP.NET还没那么强大
      

  2.   

    肯定是在aspx中引用了的啊!!  觉得没必要就没把代码写全,加上:<script type="text/javascript" src="js/ShowModal.js"  >    
          </script><input id="txtChooseUser" type="button" onclick="ChooseUser()" value="选择员工" />
      

  3.   

     document.getElementById("<%=txtUserName.ClientID%>").innerText = obj.name; //这里报错,无法找到innerText
    这个txtUserName是INPUT吧,它哪来的innerText属性?应该是value属性。
      

  4.   

    我的意思是
    <%%>
    <%=%>
    这样的脚本代码只能在当前ASPX文件下才能解析出来,如果放在普通的HTML,JS,TXT,XML是无法解析的必须要放在ASPX文件下
      

  5.   

    <%=txtUserName.ClientID%>,如果是单纯的页面,直接写控件id
      

  6.   

    1. txtUserName是服务器控件,不是input
    2. 有母版页,不能直接写控件id
    3.那你的意思是这个没有解决办法吗? 有没有其他方法能实现的?  不用每一个页面都添加代码
      

  7.   

    有一种办法,
        <script type="text/javascript">
            var SeverText1 = "<%= TxtUserName.ClientID %>";
            var SeverText2 = "<%= TxtUserPwd.ClientID %>";
        </script>
        <script src="JS/calendar.js" type="text/javascript"></script>calendar.js
    function ChooseUser() {
        var getVaule = window.showModalDialog("ChooseUserPage.aspx", "", 'dialogWidth=' + 900 + 'px;dialogHeight=' + 600 + 'px;help:no;dialogLeft=' + 150 + ';dialogTop=' + 50);
        if (getVaule != null) {
            var obj = getVaule;
            document.getElementById(SeverText1).innerText = obj.name; //这里报错,无法找到innerText        
            document.getElementById(SeverText2).innerText = obj.ID;
        }
    }
    一定要在定义好JS变量后在进行引用JS文件,这样JS文件可以找到你定义好的变量