2009-12-23 1 views
1
$('#<%= txtFirstName.ClientID%>').show(); 

Essayer d'envoyer ClientId au fichier Javascript externe en utilisant les balises de serveur comme paramètre

<input type="text" ID="txtFirstName" runat="server" maxlength="50" 
        class="DefaultTextbox" style="width:180px;" 
        value="First Name" 
        onfocus="ControlOnFocus('First Name',$('#<%= txtFirstName.ClientID%>').show())" 
        onblur="ControlOnBlur('First Name')"/> 

function ControlOnFocus(CompareString,ControlId) 
{ 
    alert(ControlId); 

} 

Répondre

7

$() est un alias court pour la fonction principale jQuery, appelée aussi jQuery(). Vous lui passez un sélecteur CSS, et en CSS, # signifie "l'élément HTML avec ID ...". Cet ID est dans la variable ClientID dans ce programme, apparemment. L'appel show() fait alors apparaître l'élément HTML nommé.

1

Bud, $ est un alias pour un framework javascript comme jquery ou prototype, le # représente un ID au DOM . Tout comme CSS, ces frameworks vous permettent de sélectionner des éléments en utilisant la syntaxe CSS (pour les classes, # pour les identifiants, etc). Donc $ ("# test") fonctionne presque comme getElementById ('test')

+0

JQuery et Prototype prennent en charge la fonction 'show', mais seul jQuery utilise le caractère' # 'dans le sélecteur d'ID. Si cela aurait été Prototype, le code aurait dû être '$$ ('id')'. – kiamlaluno

2

Il semble que votre script utilise jQuery.

$('#<%= txtFirstName.ClientID%>').show() retournera l'objet jQuery contenant l'élément avec l'attribut id=<%=txtFirstName.ClientID%>, et non la valeur ClientID.

je suppose que ce que vous voulez vraiment dire est ceci:

<input type="text" ID="txtFirstName" runat="server" maxlength="50" 
        class="DefaultTextbox" style="width:180px;" 
        value="First Name" 
        onfocus="ControlOnFocus('First Name','<%= txtFirstName.ClientID%>')" // <= pass only the ClientID to your function 
        onblur="ControlOnBlur('First Name')"/> 

function ControlOnFocus(CompareString,ControlId) 
{ 
    $('#'+ControlId).show(); // <= do the show action here, in your function 
    alert(ControlId); 

} 
1

La syntaxe jQuery commence toujours avec $, le # indique que le show de la fonction() doit être appliqué sur l'élément dont l'identifiant est fourni. Disons que l'identifiant est txtFirstName, alors écrire $ ('# txtFirstName') est équivalent à document.getElementById ('txtDirstName') en Javascript classique. Cela va sélectionner l'élément du Document Object Model (DOM) par l'ID fourni. Une fois l'élément sélectionné, différentes fonctions jQuery peuvent être exécutées sur cette référence. La fonction show rend le contrôle/élément visible. De même, vous pouvez utiliser .hide() pour masquer l'élément.