7
votes

JavaScript Vérifiez plusieurs entrées pour blanc, renvoyer une valeur

OK Les gars, avant de continuer, je sais ce que je veux faire pourrait être fait avec de nombreuses variables, etc. Mais je dois imaginer que ce que je fais peut être fait beaucoup plus simplement. Donc, ce que j'ai est une forme qui a 4 champs et je veux vérifier si quiconque des quatre sont vides. Ensuite, chacun qui est vide, je veux ajouter une classe et utiliser l'effet JQuery UI 'Shake' pour notifier. Ensuite, je veux obtenir une réponse vraie ou fausse, c'est vrai que tout n'est pas vide et faux étant que l'un des 4 est vide. donc ce que j'ai est .. html ... xxx

et la javascript / jQuery ... xxx

est maintenant là-bas Fonction de niveau pour "tester" chacune de ces déclarations pour voir si elles sont vraies? Merci.


2 commentaires

Il semble manquer un peu de votre code, mais je suppose $ Nom d'utilisateur et $ e-mail sont les valeurs de chaque champ de saisie?


hé, laissez-moi mettre à jour avec le HTML


6 Réponses :


0
votes

Vous pouvez ajouter un validate de données = true code> attribut à chaque entrée, puis faites-le comme:

function validate() {
var valid = true;
$("[data-validate]").each(function () {
    var el = $(this);
    if(el.val() == "") {
        el.parent().find('.verdiv').addClass('error');
        el.parent().effect("shake", { times:3 }, 50);
        valid = false;
    }
});

return valid
}


0 commentaires

1
votes

Mettez la même classe sur chacun des champs d'entrée à valider, par exemple validatefield .

en supposant que $ Nom $ et / code> sont les valeurs de chaque champ d'entrée, cela devrait fonctionner: xxx


1 commentaires

Est-ce que l'une de ces options permettez-moi de nous développer sur eux, disons me permettre de vérifier la structure de courrier électronique valide, etc.?



1
votes

Quoi de:

$("form input:text").each(function() {
    var isValid = new Function("value", "validate" + $(this).attr("data-type") + "(value);");
    if ($(this).val() == "" && !isValid($(this).val())) {
       $(this).parents().find('.verdiv').addClass('error');
       $(this).parent().effect("shake", { times:3 }, 50);
    }
});


1 commentaires

Est-ce que l'une de ces options permettez-moi de nous développer sur eux, disons me permettre de vérifier la structure de courrier électronique valide, etc.?



1
votes
    $('input [type=text]').each(function(event){
    if($(this).val()=='')
    {
    //Do here shaking and error showing.
    }
    });

2 commentaires

Est-ce que l'une de ces options permettez-moi de nous développer sur eux, disons me permettre de vérifier la structure de courrier électronique valide, etc.?


Vous pouvez utiliser une expression régulière ou plutôt un validateur de JQuery pour la validation



12
votes

Vous pouvez boucler: xxx

mais idéalement, j'ajouterais une classe à leur élément parent et simplifieriez le sélecteur à juste ceci: xxx

Edit: Le code n'a pas été complet - j'ai supprimé une attelle bouclée gauche.


3 commentaires

+1: définitivement en faveur de l'ajout d'une classe à l'élément parent. Beaucoup plus facile de cette façon.


Est-ce que l'une de ces options permettez-moi de nous développer sur eux, disons me permettre de vérifier la structure de courrier électronique valide, etc.?


Pas vraiment. Vous devriez valider chaque champ séparément.



0
votes

Un peu complexe et sale, mais peut fonctionner.

var items = { 'username':'Rusername', 'email':'Remail', 'password':'Rpassword', 'checkval':'Rpassword2' };
$.each( items, function( val, id ) {
    eval('if($'+val+' == \'\') { ....copy your codes here... }');
});


0 commentaires