2010-08-04 4 views
0

J'essaie d'utiliser JQuery pour vérifier la soumission si une entrée de champ a la valeur par défaut et, si c'est le cas, pour arrêter la soumission et alerter l'utilisateur. Ce que j'ai fonctionne jusqu'à un certain point. Mais peu importe ce que je mets dans le champ de saisie, la soumission est arrêtée et le texte est changé en texte d'alerte.Vérifier la valeur par défaut lors de la soumission du formulaire avec JQuery

Voici le JQuery:

$('#submitQuestion').submit(function() { 
if($('#topic').val('at least one topic, separated by commas') 
{ 
    $('#topic').removeClass('inactive'); 
    $('#topic').addClass('notice'); 
    $('#topic').val('Please include at least one topic'); 
    return false; 
} 
return false; 
}); 

L'autre problème que je l'ai est occultant le texte par défaut une fois que le texte a été modifié pour avertir l'utilisateur. En ce moment j'ai juste des chaînes au lieu des variables, et pour une raison quelconque cela ne fonctionne que (partiellement) si j'utilise '==' à certains endroits. À l'heure actuelle, la première condition if de la fonction de mise au point fonctionne, mais pas la condition elseif. Actuellement, j'ai ce code:

$('#topic').focus(function(){ 
    if(this.value=='at least one topic, separated by commas') 
    { 
$(this).val(' '); 
    } elseif(this.value=='Please include at least one topic') 
    { 
$(this).val(' '); 
$(this).removeClass('notice'); 
    } 
}); 

$('#topic').blur(function(){ 
    if(this.value==' ') 
    { 
    $(this).val('at least one topic, separated by commas'); 
    $(this).addClass('inactive'); 
    } 
}); 

Évidemment, ma maîtrise de JQuery est, bien, pas en tant que telle. Mais j'apprécie toute aide.

Répondre

0

Avec jQuery vous définissez une valeur de forme comme ceci:

$('#topic').val('text here') 

Mais si vous voulez obtenir la valeur, par exemple pour vérifier contre une valeur, vous pouvez utiliser la fonction val() avec pas de paramètres, comme ça:

if ($('#topic').val() == 'at least one topic, separated by commas') { 
    ... 
} 
2

Pour soumettre un formulaire dans d'autre part retrun vrai pas faux réponse à la première question `

soumettre le formulaire: http://api.jquery.com/submit/

$('#submitQuestion').submit(function() { 
if($('#topic').val('at least one topic, separated by commas') 
{ 
    $('#topic').removeClass('inactive'); 
    $('#topic').addClass('notice'); 
    $('#topic').val('Please include at least one topic'); 
    return false; 
} 
else 
return true; 
}); 

Réponse 2:

valeurs de chaîne de magasin en variable et utilisez la syntaxe === pour un fonctionnement égal et son else sinon elseif donc le script mis à jour est

var defaultTextFocus = 'at least one topic, separated by commas'; 
var defaultTextVal = 'Please include at least one topic'; 
$('#topic').focus(function(){ 
    if(this.value=== defaultText) 
    { 
    $('#' +this.id).val(' '); 
    } else if(this.value=== defaultTextVal) 
    { 
    $('#' +this.id).val(' '); 
    $('#' +this.id).removeClass('notice'); 
    } 
}); 
+0

Votre réponse à Q2 a fonctionné comme par magie, mais je ne peux toujours pas obtenir le formulaire pour faire quoi que ce soit sur l'événement submit. Je peux l'obtenir pour effacer le texte par défaut ou le désactiver. D'autres conseils? – tchaymore

+0

pour la première question vérifier ce lien: http: //api.jquery.com/submit/ qui pourrait vous aider à résoudre le problème –

Questions connexes