2012-01-27 59 views
3

我在使用jquery的時候大概有1天的時間,並且目前正在使用jquery。我讀了一大半時間試圖擺脫這個錯誤。 我在「googling」這個錯誤之後做了一些閱讀(對不起,Bing!),並發現這些錯誤大部分來自jquery文件未正確加載。好吧......開始指向正確的方向,但我仍然無法弄清楚爲什麼它沒有正確行事。我的意思是,我正在按照人們所說的做 - 我會將.js文件拖入我的設計器中,然後打印出正確的路徑,但仍顯示錯誤。爲什麼「Microsoft JScript運行時錯誤:對象預期」?

下面是我的編輯模板,我確切的代碼(與錯誤):

@model bool 
@{ 
    string status = "Active"; 
    string buttonValue = "Deactivate"; 
    string hiddenValue = "true"; 
    if (!ViewData.Model) 
    { 
     status = "Inactive"; 
     buttonValue = "Activate"; 
     hiddenValue = "false"; 
    } 
} 

<div style="width:100px; float:left;"> 
<img id = "AD_Img" src = "/Content/themes/base/images/[email protected](status).png" alt = @(status) /> 
<label for = "AD_Img" id = "AD_Label" >@(status)</label> 
</div> 
<div style="width:100px; float:left;"> 
<input type="button" id = "AD_Button" value = @(buttonValue) style = "width:100px" onclick = "ChangeStatus()" /> 
<input id = "AcntStatus" type = "hidden" name = "AcntStatus" value = @(hiddenValue) /> 
</div> 

,並在同一個CSHTML文件,腳本變爲這樣:

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

function ChangeStatus()    
{ 
    var ButtonVal = $("#AD_Button").val(); 
    alert(ButtonVal); 

     if (ButtonVal == "Deactivate") 
     { 
      var stat = "Inactive"; 
      var buttonVal = "Activate"; 
      var HiddenValue = "false"; 
     } 

     else if (ButtonVal == "Activate") 
     { 
      stat = "Active"; 
      buttonVal = "Deactivate"; 
      HiddenValue = "true"; 
     } 
      $("#AD_Img").attr({src: "/Content/themes/base/images/icon_"+stat+".png", alt: stat}); 
      $("#AD_Label").html(stat); 
      $("#AD_Button").val(buttonVal); 
      $("#AcntStatus").val(HiddenValue);  
} 
</script> 

調試器上停止輸入元素的ChangeStatus函數在以下行上:

<input type="button" id = "AD_Button" value = @(buttonValue) style = "width:100px" onclick = "ChangeStatus()" /> 

我試圖通過調試它在我的功能代碼使用此:

function ChangeStatus()    
    { 
     var ButtonVal = document.getElementById("AD_Button").value; 
     alert(ButtonVal); 
    } 

而且它正常工作,它返回我正在尋找沒有這個錯誤,但爲什麼實際字符串?我的代碼有什麼問題? 請幫我弄清楚這一點。

+2

。 – 2012-01-27 04:28:44

+0

你爲什麼要創建'True'和'False'變量?只需使用'true'和'false'文字就不需要使用字面值,你的代碼將會更快地運行。由於你是jQuery的新手,我假設它不是通過縮小變量重命名來節省開支。如果這是它沒有必要的原因,因爲你也應該gzip你的代碼,gzipping之後的差異可以忽略不計,不值得的性能打擊。 – 2012-01-27 04:36:35

+0

@JoelCoehoorn:我明白了。那麼我應該使用_src =「/ Content/themes/base/images/icon _ @(status).png」_和_src =「/ Scripts/jquery-1.5.1.min.js」_。謝謝你的提示。 :) – ideAvi 2012-01-27 05:03:30

回答

3

此:

$("#AD_Img").attr(src: "../../../Content/themes/base/images/icon_"+stat+".png", alt: stat); 

迫使一個語法錯誤。它必須是:

$("#AD_Img").attr({src: "../../../Content/themes/base/images/icon_"+stat+".png", alt: stat}); 

編輯:

也看看你的<script>,你不能混用外部JS和JS內部。

此:

<script type="text/javascript" src="../../../Scripts/jquery-1.5.1.min.js"> 
//your code 
</script> 

擁有每當我看到``../在javascript SRC標籤,這是一個很大的紅色標誌被分裂成

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

<script type="text/javascript"> 
//your code 
</script> 
+0

謝謝@ Dr.Molle!我已經應用了您的更正,但錯誤仍然存​​在。我還應該做什麼? – ideAvi 2012-01-27 04:24:07

+1

請發佈調試器停止的行。 「預期對象」可以是任何東西,例如可能是jQuery的錯誤路徑。js – 2012-01-27 04:29:50

+0

@ideAvi:也看看我編輯過的帖子 – 2012-01-27 04:47:53

相關問題