2010-06-21 2 views
1

Je possède ce champ Mot de passeQuel est le problème avec cet événement onload?

input class="txtfld" type="password" id="TextBoxLoginPassword" runat="server" 
       value="password"  
       onfocus="javascript:if(this.value == 'password') this.value='';" 
       onblur="javascript:if(this.value == '') this.value='password';" 
       onload="javascript:if(this.value == '') this.value='password';" 
       validationgroup="Login" /> 

Le problème est que cela semble aussi vide. Même j'ai défini une valeur par défaut. Pour résoudre ce problème, j'ai ajouté un événement onload et j'obtiens l'erreur suivante

  1. caractère vide littérales
  2. Trop de caractères caractère littéraux Pourquoi ce semble vide en première place et pourquoi dois-je obtenir ces erreurs ? Ce dont j'ai besoin est d'afficher une valeur par défaut dans le champ mot de passe.
+0

champs par défaut sont toujours pour informer l'utilisateur sur l'entrée. Pourquoi voulez-vous un champ par défaut pour le mot de passe qui sera affiché sous forme de points? – rahul

+0

@Amitabh Comment? @Rahul Je n'ai que des champs nom d'utilisateur et mot de passe. nom d'utilisateur informe que entrez le nom d'utilisateur ici. donc un champ de mot de passe vide n'est pas très bon avec ça. et chaque fois que l'utilisateur verra des points, il comprendra que c'est pour le mot de passe. Je n'ai aucune étiquette associée à ces feilds. –

Répondre

1

Le problème est dans la combinaison du texte dans l'extrémité OnLoad le "runat = serveur". En raison de cet attribut runat, asp.net pense que la fonction OnLoad spécifie une fonction côté serveur. Et puis '' et 'mot de passe' semblent (au moins à C#) pour spécifier des littéraux de caractères, dont le premier a trop peu de caractères réels ("Empty Character Literal") et le second trop.

Donc, essayez d'enlever le « runat = server » (et lire le mot de passe directement de la QueryString)

2

Il me semble que vous voulez fournir un "filigrane", pas le vrai mot de passe. Avez-vous regardé le Watermark extender de la boîte à outils de contrôle Ajax?

+0

En fait, le terme est [espace réservé] (http://www.w3.org/TR/html5/forms.html#the-placeholder-attribute), comme inclus dans la spécification HTML5. –

+0

Même l'affichage des points devrait suffire. –

1

@Hans Kesting réponse est correcte, mais si vous ne souhaitez pas utiliser extendeur, vous pouvez utiliser le code suivant.

<input class="txtfld" type="text" id="TextBoxLoginPassword" 
       value="enter password"  
       onfocus="javascript:if(this.type != 'password') this.value='';this.type='password'" 
       /> 
1

Voici un peu vraiment doux de JQuery/CSS que vous pouvez utiliser ici et ailleurs dans votre site pour résoudre votre problème:

http://attardi.org/labels/#demo

Questions connexes