2010-11-25 6 views
1

il y a une case à cocher et une zone de texte. Initialement, la zone de texte est désactivée et, en cochant la case, la zone de texte est activée. J'ai essayé cela mais le problème est qu'il ne fonctionne pas quand le serveur runat est ajouté. ou je devrais changer la logique de javascript pour les commandes standard d'asp.net. ou peut me suggérer une façon plus beeter de le faire.case à cocher et zone de texte

<script type="text/javascript"> 
$(document).ready(function() { 
    var checkbox = $('#htmlChkNotify'); 
    var textfield = $('#htmlTxtNotifyemailaddress'); 
     checkbox.click(function() { 
      if (checkbox.is(':checked')) { 
       textfield.removeAttr('disabled'); 
       textfield.removeClass("email"); 
      } 
      else { 
       textfield.attr('disabled', 'disabled'); 
       textfield.addClass("email"); 
      } 
     }); 
    }); 


    </script> 

<input type="checkbox" id="htmlChkNotify"/> 
<label for="htmlChkNotify">Notify</label> 
<input type="text" id="htmlTxtNotifyemailaddress" disabled="disabled" 
     class="email" style="width:25%" /> 

Répondre

0

Voir le code HTML généré (« voir la source » dans le navigateur)
et vérifier les ID de case à cocher et zone de texte

1

Il y a plusieurs façons d'obtenir ce travail.

  1. Utilisez tout le code côté serveur.
  2. Dans votre code client (javascript), au lieu d'utiliser le côté serveur id, utilisez la propriété .ClientId du contrôle. Donc, si votre htmlChkNotify est côté serveur, vous pouvez utiliser var checkbox = $('#<%=htmlChkNotify.ClientId%>');
+0

il ne fonctionne pas – kinn

+0

@kinn - Qu'est-ce qui ne fonctionne pas? J'ai donné deux options, et vous n'avez pas expliqué lequel ne fonctionnait pas et _what_ n'a pas fonctionné. – Oded

1
  1. ajoutez l'attribut runat à votre zone de texte
  2. Changer votre 4ème ligne pour être var textfield = $ ('# <% = htmlTxtNotifyemailaddress. ClientID%> ');

devrait le faire

Questions connexes