2012-01-27 17 views
3

jqueryを使用して約1日経過しており、現在は悪夢を感じています。私はこのエラーを取り除こうと努力していました。 エラーを「グーグル・グーグル」した後に読んだことがあります(申し訳ありませんが、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

に分割されなければなら、それは大きな赤い旗です。 –

+0

なぜ 'True'と' False'変数を作成していますか? 'true'と' false'リテラルを使うだけで、varsが不要になり、コードはリテラルを使ってより速く実行されます。あなたはjQueryを初めて使っているので、私はそれがminificationで変数の名前を変更することによる節約の試みではないと仮定しています。それが理由であれば、コードをgzipする必要があり、gzipping後の違いは無視でき、パフォーマンスヒットの価値はないので、必要ではありません。 –

+0

@JoelCoehoorn:そうです。 _src = "/ Content/themes/base/images/icon _ @(status).png" _と_src = "/ Scripts/jquery-1.5.1.min.js" _を使用してください。先端に感謝します。 :) – ideAvi

答えて

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}); 

編集:

また、あなたは、外部JSと内部JSを混在させることはできません、あなたの<script>を見てそれがなければなりません。

この:私はjavascriptのSRCタグに `` ../見るたび

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

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

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

ありがとう@ Dr.Molle!私はあなたの修正を既に適用しましたが、エラーはまだそこにあります。何をすべきか? – ideAvi

+1

デバッガが停止する行を投稿してください。 「オブジェクト期待」は何でもよい。 jqueryへの間違ったパスになる可能性があります。js –

+0

@ideAvi:私の編集した投稿を見てください –

関連する問題