2010-12-01 24 views
0

J'essaie de valider un formulaire en utilisant jquery (ne pas utiliser le plugin de validation) ... ce que je voulais savoir, c'est s'il y avait un moyen d'appeler le même fonction sans être attaché à un nœud particulier ...appeler la fonction jq comme vous feriez une fonction js à partir d'un élément de formulaire

comme dans js

<input id="xyz" ....onblur=js:function()> 

<input id="abc" ....onblur=js:function()> 

où, comme dans JQ

$(#xyz).blur(); 
$(#abc).blur(); 

pas la syntaxe exacte, mais vous l'obtenez ...

grâce andy

+0

Vous souhaitez appeler un gestionnaire en ligne? –

Répondre

1
$(function() { 
    $(":input").blur(function() { 
    // executes this function every time the blur event 
    // fires on any input element 
    }); 
} 

"élément d'entrée" étant des éléments d'entrée, de zone de texte, de sélection et de bouton.

Si vous souhaitez simplement que l'événement de flou se déclenche pour les entrées normales, perdez les deux points. J'espère avoir obtenu ce que vous vouliez accomplir.

+0

merci je pense que ce que je cherche ... – andy

0

Je espoir je comprends ce droit. Pour joindre les gestionnaires d'événements discrètement, utilisez un gestionnaire document.ready, et les ajouter à l'intérieur, comme celui-ci:

$(function() { //runs when the DOM is ready 
    $("#xyz").blur(function() { 
    //do some validation... 
    }); 
    $("#abc").blur(function() { 
    //do some validation... 
    }); 
}); 

Ensuite, vos gestionnaires ont pas besoin de fonctions en ligne, ils peuvent juste être:

<input id="xyz" name="xyz" type="text"> 
<input id="abc" name="abc" type="text"> 
+0

pas exactement .... ce que je veux faire est d'appeler $ (fonction() chaque fois qu'il y a un flou (comme à chaque fois que j'entre ou supprime des choses de l'entrée sur le formulaire) ... – andy

+0

alors ce que vous dites est-ce que chaque fois que j'entre ou édite des choses sur le formulaire d'événement le jquery sera appelé sans que je doive l'appeler ...? – andy

+0

@andy - c'est ce que cela fera, le code dans les gestionnaires ci-dessus sera exécuté chaque fois qu'un ' flou arrive .Tester ici: http://www.jsfiddle.net/nick_craver/xQak4/ @alex - merci! –

0
$('#xyz, #abc').blur(function() { 
    //Wrap into jQuery object 
    var $this = $(this); 

    //console.log($this); 

    //Do some validations 
    $this.val($.trim($this.val())); 
    if(!$this.val().length) { 
     alert('box is empty'); 
    } 
});