2010-07-14 8 views
1

Comment faire pour convertir le onchange="this.form.submit()" au format jQuery?Comment convertir onchange = "this.form.submit()" en jquery

<form action="process.php" method="post"> 
    <select name="qty" onchange="this.form.submit()"> 
    <option value="1">1</option> 
    <option value="2">2</option> 
    <option value="3">3</option> 
    <option value="4">4</option> 
    </select> 
</form> 

j'ai eu un problème parce que certains navigateur ne fait rien sur le process.php si l'utilisation onchange="this.form.submit()"

Laissez-moi savoir ..

Répondre

3

Vous Je n'ai pas besoin de faire quoi que ce soit. Alors que vous pouvez changer this.form.submit() à $(this).closest('form').submit(), cela n'aura aucun effet (en dehors d'être légèrement moins lisible) comme tout jQuery le fera avec ce sera d'appeler this.form.submit().

Si vous rencontrez un problème avec l'envoi du formulaire à partir de JavaScript, vous aurez toujours le même problème avec jQuery. Quel est exactement ce problème?

Dans tous les cas, vous ne devez généralement pas utiliser les boîtes de sélection auto-soumises. Ils cassent l'accessibilité du clavier (puisque IE tire onchange prématurément de l'utilisation du clavier) et ils interagissent mal avec le bouton de retour.

+0

Hmm .. correct. J'ai besoin de trouver quel est exactement ce problème. – kampit

6

Comme ceci:

$('select[name="qty"]').change(function(){ 
    $(this).parents('form').submit(); 
}); 
+0

peut être fait si le nom de sélection est 'qté []'? – kampit

+0

N'oubliez pas de lier après que le DOM a chargé: $ (document) .ready (function() { // mettre js ici }); –

+0

Vous préférez adresser le formulaire avec un id, au lieu de passer par le parent qui est plus lourd .. – gillyb

1

telles questions toujours remember me of things like this. pourquoi voulez-vous utiliser jquery pour une chose si simple? donner un name à votre form et faire document.myform.submit(); (qui fonctionnera dans IE3.0 +, FF1.0 +, Safari1.0 +, Opera5.12 +, Konqueror3.1 + ... (que diriez-vous de jQuery?)).

0

ajouter un identifiant pour former et écrire:

$('#formid select[name=qty]').change(function(){ 
    $('#formid').submit(); 
}); 
Questions connexes