我在asp.net页面引用外部js文件无效,把js代码放到asp.net页面上就可以!
路径没有错的,
<script src="js/CheckReg.js" type="text/javascript"></script>
javascript文件在项目下的js文件夹下!
js中有中文,编码是utf-8!请高手指教下!
js代码:一个用户注册验证function CheckUserName(){
    var uName = document.getElementById('<%=txtUserName.ClientID%>').value;
    var uNameMs = document.getElementById("uNameMessage");
    if(uName!="")
    {
        
    }
    else
    {
        uNameMs.innerHTML="<img src='images/yes.jpg' alt='' />用户名不能为空";
        return false;
    }}

解决方案 »

  1.   

    外部js文件是脱离开发页面实现的工具函数
    function test(obj)
    {
        window.onload=function(){alert(obj.value);}
    }
    http://topic.csdn.net/u/20101031/22/cd65befd-bc5a-4fa3-9863-e7a17967606c.html
      

  2.   

    aspx不一定放在网站上哪一个目录下呢,所以写“js/....”这是不能保证访问到网站下的js目录的。应该使用类似这样的语句
    ScriptManager.RegisterClientScriptInclude(this.Page,this.GetType(),"abcd",
      this.Page.ResolveUrl("~/js/CheckReg.js"));
    来注册
      

  3.   

    其实不仅仅是aspx,在ascx,自定义控件,甚至最普通的类库代码中你也可能需要声明引用js文件,所以应该熟悉 RegisterClientScriptInclude 这个方法。
      

  4.   

    嗯,请试一下 RegisterClientScriptInclude 的最后一个参数是否直接支持以“~”开头的asp.net路径。我不确定了,所以写了一个 is.Page.ResolveUrl,这可能是多余的。
      

  5.   

    因为你的js代码用到了aspx后台变量数据,你放到外部那个<%%>里面的就没法执行了. var uName = document.getElementById('<%=txtUserName.ClientID%>').value;<%=%>只有在aspx页面里面才有效.你可以改小js函数,把这个值做参数传递到js函数里面 如:function CheckUserName(canshu){
        var uName = document.getElementById(canshu).value;
    在aspx页面调用的时候 CheckUserName('<%=txtUserName.ClientID%>')
      

  6.   

    两种可能,一种就是楼上那位说的清除ie的缓存试试,另外也可能是js文件的编码有问题,需要把外部js的编码改成Uncode编码的才能正常的使用,我也纠结了这个问题很久,最后是清除了缓存就可以了。