2017-05-10 1 views
0

J'ai une page .cshtml que je vais mettre en place avec plusieurs cases à cocher.Javascript Checkbox cochée sur l'erreur de chargement

Les cases à cocher doivent être cochées/décochées en fonction des valeurs de plusieurs variables passées dans la vue à l'aide de TempData.

J'ai mis en place le code comme suit:

<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/> 

Mais la ligne

eCheckBox.checked = true; 

produit l'erreur «identifiant prévu, un mot-clé est vérifiée. Y a-t-il quelque chose d'évident qui me manque? Faire cocher une case sur la charge semble être simple à faire.

EDIT: J'ai essayé de corriger le code comme suit:

<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> 

Il ne semble pas que le code frappe la fonction du tout, car aucun déclenchement de l'alerte.

+1

Dans votre code édité vous mettez la logique dans une fonction, est-ce que la fonction est appelée? Peut-être l'envelopper dans un bloc Document.Ready ou juste mettre checkTrue() quelque part dans les balises de script? –

Répondre

1

Vous manquez de récupérer votre élément HTML correctement via JS. Il suffit d'utiliser ceci:

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

merci, mais il ne semble pas fonctionner. Je l'ai mis dans une fonction et j'ai essayé de l'appeler onload avec une alerte à des fins de débogage, mais la fonction n'est pas appelée du tout. – peanut

+0

l'élément d'entrée n'a pas d'événement onload, c'est pourquoi il n'est pas appelé. Gardez le code comme vous avez et invoquez la fonction dans le script, 'checkTrue();' – quirimmo