2 votes

jQuery vérifie si un formulaire comporte des éléments dont l'attribut data est data-val

J'essaie de détecter si des éléments dans un formulaire ont un attribut de données appelé data-val .

Si c'est le cas, exécutez la fonction contenue dans l'instruction if. J'ai essayé ceci :

            var checkValidation = $('.uiModalContent').closest('form').find('input[data-val="true"], textarea[data-val="true"]');

            if(checkValidation.length > 0) {

                $.validator.unobtrusive.parseDynamicContent('.uiModalContent');

            }

Cependant, cela ne fonctionne pas comme prévu, probablement parce que le checkValidation devient un tableau et que la vérification par la longueur n'est probablement pas la meilleure façon de procéder.

Quelqu'un peut-il proposer des corrections ou des solutions alternatives ?

Gracias

6voto

zzzzBov Points 62084

Utilisez le a un sélecteur d'attributs

'[data-val]'

I.E. :

$('input[data-val], textarea[data-val], select[data-val]').chain().stuff();

Utilisation de [data-val="true"] signifierait que la valeur de [data-val] es "true" comme :

<element data-val="true" />

var $elems;
$elems = $('.uiModalContent').closest('form').find('[data-val]');
if ($elemens.length) {
  doSomething();
}

1voto

will Points 2202

Je l'utilise dans mon formulaire de validation :

// CHECK REQUIRED
$.fn.required = function(){
    return $(this).data('required') == '';
}

Il renvoie vrai ou faux, vous pouvez renvoyer la valeur. Utilisez-le comme ceci :

var required = $('input').required();
if( required ) // Do something

Dans votre cas, il faut donc changer la valeur

<input data-val="value">

J'espère que cela vous aidera :)

0voto

3nigma Points 21164

Essayez

   var boolFlag=false;
    $('.uiModalContent').closest('form')
    .find('input, textarea').filter(function(){  
      $.each($(this),function(k,v){
        if($(v).data('val')) boolFlag=true;            
        });
    });

    if(boolFlag) {   
        $.validator.unobtrusive.parseDynamicContent('.uiModalContent');

     }

http://jsfiddle.net/JHreW/15/

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X