2010-07-15 4 views
1

J'ai une liste déroulante qui est activée/désactivée en fonction d'une case à cocher onclick. Lors de mon débogage, ma référence d'objet n'est pas définie lorsque ma case à cocher est désactivée dans mon contrôleur.Puis-je désactiver une liste déroulante sans utiliser désactiver en javascript?

CONTRÔLEUR

Subject = Request.Form["DetailSelect" + rowID].ToString(); 

JAVASCRIPT

ddlSelect.disabled = !ddlSelect.disabled; 

ASPX

<select = id="detailSelect<%=item.rowID"%> name="DetailSelect<%=item.rowID%>"> 
    <option value="">--Choose One--</option> 
    <option value="Math">Math</option> 
    <option value="English">English</option> 
    <option value="History">History</option> 
</select> 

Où puis-je désactiver ma liste déroulante, sans utiliser la bascule désactivé en javascript?

Répondre

0

J'ai fait une petite contournement où j'ai utilisé un objet caché et avant de désactiver ma liste déroulante dans la fonction javascript, j'attribue la valeur à mon inpu caché t.

ASPX

<input id="hiddenSelect" type="hidden" name="HiddenSelect" value="" /> 

JAVASCRIPT

var ddlSelect = document.getElementById('detailSelect' + rowID).value; 
document.getElementById('hiddenSelect').value = ddlSelect; 
ddlSelect.disable = !ddlSelect.disabled; 
1

Si vous n'utilisez la propriété désactivée, vous pouvez le faire avec un attribut:

<select ... disabled="disabled"></select> 
+0

Est-ce accessable dans le contrôleur avec mon code Request.Form? – MrM

1

Vous pouvez le faire via jquery

$("input[id$='chkbox']").click(function() { 
      $("select[id$='ddl']").attr("disabled", !$(this).is(":checked")); 
     }); }); 

où chkbox est l'identifiant de la case à cocher et ddl est l'ID de la liste déroulante

+0

Est-ce accessible dans le contrôleur avec mon code Request.Form? – MrM

+0

Il existe un article intéressant qui explique pourquoi les contrôles désactivés ne sont pas publiés sur le serveur Web et explore certaines des solutions de contournement à ce problème. http://www.4guysfromrolla.com/articles/012506-1.aspx sous la rubrique «Correction du problème des champs de formulaire désactivés en utilisant un état« faux »désactivé – Neel

Questions connexes