2010-04-04 6 views
2

J'utilise JQuery Validation pour valider une zone de texte particulière dans mon formulaire. La zone de texte est une section optionnelle website, qui utilise la méthode de validation url. Cela fonctionne bien et valide en conséquence. Je voudrais avoir http:// préréglé dans la zone de texte, pour enregistrer l'utilisateur ayant à taper. Toutefois, lorsque le texte est défini, le validateur devient "actif" et empêche toute action sur le formulaire avant que le http:// soit supprimé manuellement ou qu'un site Web valide soit entré. Existe-t-il un moyen de prédéfinir du texte dans la zone de texte, ce qui ne va pas entraîner la validation du validateur?Validation JQuery sélective

J'ai essayé d'utiliser

$("[id$='tbWebsite']").val("http://"); 

juste avant que j'appelle form.validate(), mais il ne fonctionne pas (à savoir qu'il obtient toujours vérifié).

Je n'ai jamais utilisé JQuery Validator auparavant, donc j'espère qu'il y a une solution à ce problème qui me manque!

Une autre solution pour mon cas en particulier, pourrait être d'activer le validateur si un certain bouton est pressé (au lieu de n'importe quel bouton sur le formulaire). Cela serait-il possible?

Merci

Mise à jour

Je l'ai ajouté à la déclaration de zone de texte:

onfocus="if(this.value == 'http://' || this.value == '')this.value='http://'" onblur="if(this.value == 'http://')this.value=''" 

qui résout le problème principal. Toutefois, si l'utilisateur clique dans la zone de texte, puis clique sur, le message d'erreur est toujours affiché (même si elle n'est pas appliquée et le formulaire peut être soumis). Quel serait le meilleur moyen de s'assurer que le message d'erreur ne s'affiche pas du tout, si la valeur est 'http: //'?

Répondre

1

Mettez le préfixe uniquement lorsque l'utilisateur se concentre la zone de texte vide, et l'enlever si la zone de texte perd le focus avec seulement le préfixe dans ce

+0

Si vous faites cela, assurez-vous que vous ** seulement ** définissez la valeur sur http: // si l'utilisateur ** n'a pas déjà entré quelque chose. Rien de pire que de remplir un champ, de le retourner et de le faire vider. –

+0

Bien sûr. Ajout d'un peu d'emphase au cas où ce n'était pas clair. –

+0

Merci. J'ai implémenté la logique, et cela fonctionne bien (le formulaire peut être soumis). Cependant, le message d'erreur apparaît toujours si je clique dans la case, puis je clique dessus (sans entrer quoi que ce soit de valide). J'ai mis à jour mon message original avec le code. – keyboardP