2017-05-10 6 views
0

複数のチェックボックスを使用して設定する.cshtmlページがあります。Javascriptチェックボックスロード時にエラーが表示される

TempDataを使用してビューに渡された複数の変数の値に応じて、チェックボックスをオンまたはオフにする必要があります。

次のように私は、コードを設定している

<script> 

    @if (TempData["enabled"] == "True") { 
     var eCheckBox = document.getElementById(eCheck); 
     eCheckBox.checked = true; 

    } 

</script> 

<h2>Update @TempData["fullName"]</h2> 

<input type="checkbox" name="enabledCheckbox" value="Enabled" id="eCheck"/>Enabled<br/> 

しかしライン

eCheckBox.checked = true; 

がエラー生成「期待の識別子を、確認がキーワードです」。明白な何かがありますか?ロード時にチェックボックスをオンにしておくのは、やりやすいことです。

編集:私は、次のようにコードを修正してみました:

<input type="checkbox" name="enabledCheckbox" value="Enabled" id="eCheck" onload="checkTrue()"/>Enabled<br/> 

<script type="text/javascript"> 

    function checkTrue() { 
     alert("Here!"); 


     if (TempData["enabled"] == "True") { 
      document.querySelector('[name=enabledCheckbox]').checked = true; 
     } 
    } 

</script> 

コードがノー警告火災として、全く機能に当たっているかのようにそれは見ていません。

+1

編集したコードでは、ロジックを関数内に置いて、関数が呼び出されますか?たぶんDocument.Readyブロックでラップするか、スクリプトタグのどこかにcheckTrue()を入れてください。 –

答えて

1

あなたは、JSを通じてHTML要素を正しく取得することができません。

document.querySelector('[name=enabledCheckbox]').checked = true; 
+0

ありがとうございますが、動作していないようです。私はそれを関数に入れて、デバッグの目的で警告を出してonloadという関数を呼び出そうとしましたが、その関数はまったく呼び出されていません。 – peanut

+0

input要素に 'onload'イベントがないため、呼び出されません。 コードをそのまま使用し、スクリプト内の関数を呼び出します。 'checkTrue();' – quirimmo

関連する問題