2009-07-22 38 views
0

之前,我有這樣的:JavaScript文件引用的問題(用jQuery)

<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打開了我的網頁,它有這樣的閱讀頁面錯誤:

Line: 54
Error: Unknown name.

54號線正好是我的外部JavaScript文件的最後一行。

我在做什麼錯?

回答

4

我說得對,這是ASP.Net嗎?如果是這樣,內聯腳本如:

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

無法進入外部JavaScript文件。

+0

這就是問題 - ASP.NET引用中的ASP.NET代碼將不會由服務器上的ASP.NET處理。 – 2009-07-22 20:54:52

2

您是否已將<腳本>標記放入您的myScript.js中?如果是,請將其移除。

你myScript.js應

VAR optPrompt開始= 「 - 選擇 - 」;

+0

不,我沒有犯這個錯誤。 – 2009-07-22 20:52:31

2

既然你現在服務於JS作爲靜態文件,而不是通過你的ASP,線條狀

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

將不再作爲服務器工作不理解他們,並用正確的值進行替換。您需要在腳本中對它們進行硬編碼,或者將這些行作爲內聯腳本保留在主頁面中,並將它們設置爲全局變量,然後您可以從外部文件中引用它們。