Javascript文件引用问题(使用jQuery)

时间:2009-07-22 20:48:22

标签: javascript jquery html filereference

之前,我有这个:

<head>
    <script src="/Scripts/jquery-1.3.2.min.js" type="text/javascript"></script> 
    <script type="text/javascript">
        var optPrompt = "- Select One -";
        var subCats;
        var parentCats;
        var nextBtn;

        var ParentChanged = function() {
            ClearDescription();

            if (this.selectedIndex == 0) {
                $(subCats).html($("<option>").text(optPrompt));
            }


            $.getJSON('<%=Url.Action("GetChildCategories") %>', { parentId: $(this).val() },
                    function(data) {
                        subCats.options.length = 0;
                        $("<option>").text(optPrompt).appendTo(subCats);
                        $(data).each(function() {
                            $("<option>").attr("value", this.ID).text(this.Name).appendTo(subCats);
                        });
                    });
        }

        var DisplayDescription = function(catId) {
            $.ajax({
                url: '<%=Url.Action("GetDescription") %>',
                data: { categoryId: catId },
                dataType: 'html',
                success: function(data) {
                    $("p#categoryDescription").html(data);
                }
            });
        }

        var ChildChanged = function() {
            var catSelected = this.selectedIndex != 0;

            if (!catSelected) ClearDescription();
            else DisplayDescription($(this).val());
        }

        var ClearDescription = function() {
            $("p#categoryDescription").html('');
        }

        $(function() {
            parentCats = $("select#Category").get(0);
            subCats = $("select#Subcategory").get(0);
            nextBtn = $("input#nextButton").get(0);

            $(parentCats).change(ParentChanged);
            $(subCats).change(ChildChanged);
        });

    </script> 
</head>

然后我将所有内联脚本放入一个文件(myScript.js)并将我的HTML更改为:

<head>
    <script src="/Scripts/jquery-1.3.2.min.js" type="text/javascript"></script> 
    <script src="/Scripts/myScript.js" type="text/javascript"></script> 
</head> 

现在什么都没有用。我在IE7中打开了我的页面,它的页面错误如下:

  

行:54
  错误:名称不明。

第54行恰好是我外部javascript文件的最后一行。

我做错了什么?

3 个答案:

答案 0 :(得分:4)

我是否正确地说这是ASP.Net?如果是,内联脚本如:

<%=Url.Action("GetDescription") %>

无法进入外部JavaScript文件。

答案 1 :(得分:2)

你把&lt;脚本&gt; myScript.js里面的标签?如果是,请删除它们。

你的myScript.js应该以

开头

var optPrompt =“ - 选择一个 - ”;

答案 2 :(得分:2)

由于您现在将js作为静态文件提供,而不是通过ASP,像

这样的行
<%=Url.Action("GetChildCategories") %>

将不再起作用,因为服务器不解释它们并用正确的值替换它们。您需要在脚本中对它们进行硬编码,或者将这些行作为内联脚本保留在主页面中,并将它们设置为全局变量,然后可以从外部文件中引用它们。