2010-10-28 18 views
0

J'ai un select qui a plusieurs options. Pas d'option vide.trigger ('change') sélectionne la 1ère option, ce que je ne veux pas

Avant appeler le pas de déclenchement des options sont sélectionnées, après il exécute la première option est présélectionné, et je veux que la sélection de rester comme il était, aucune option sélectionnée

$("#selProduct").trigger('change'); 

Comment régler ceci? Je veux toujours déclencher le changement, pour exécuter les événements, mais je ne veux pas la première option sélectionnée.

+0

Eh bien, je ne suis pas sûr de ce que vous attendez vraiment ici. Lorsque votre gestionnaire "change" s'exécute, vérifie-t-il l'état du contrôle? Est-ce que quelque chose apparaît dans le menu déroulant de sélection? S'il y a quelque chose qui s'affiche, alors c'est sélectionné. L'option sélectionnée par défaut est toujours la première sauf si vous l'avez configurée différemment. – Pointy

+0

Je veux que le select soit à l'état non activé. Donc, aucune des options n'est sélectionnée, pas même la première. J'ai besoin de selectedIndex = -1; – Pentium10

Répondre

1

Je pense que ce que vous voyez est le résultat du DOM une fois qu'il est touché et dépendra du navigateur (mais selectedIndexdevrait être0 déjà).

Cela étant, dit, utiliser .triggerHandler() pour exécuter juste le gestionnaire, comme ceci:

$("#selProduct").triggerHandler('change'); 

Pour votre question cependant, vous pouvez stocker quelque chose sur la <select> à la page charge, que les changements quand il est "touché", par exemple:

$("#selProduct").change(function() { 
    $.data(this, 'changed', false); 
    //do stuff 
}).data('changed', false); 
+0

J'ai utilisé 'if ($ (" # selProduct "). Val> 0) { \t $ (" # selProduct "). Trigger ('change'); \t} ' – Pentium10