2010-03-01 5 views
4

Je me réfère àévénement Onchange en utilisant selecttouislider

http://www.filamentgroup.com/lab/update_jquery_ui_slider_from_a_select_element_now_with_aria_support

et ayant du mal à récupérer la valeur sélectionnée sur le curseur. Dans un premier temps que je rencontrais un menu déroulant qui avait un événement onchange associé .. et a travaillé comme un charme en appelant

<select id="myselect" onchange="myfunction(this);" > 

mais maintenant besoin d'un curseur changé

$('select#myselect').selectToUISlider({sliderOptions: {stop: function(e,ui) {alert(this.val());}}}); 

il me jette cette .val() n'est pas une fonction.

J'ai essayé aussi d'utiliser

$('select#myselect').selectToUISlider({sliderOptions: {stop: function(e,ui) {alert(ui);}}}); 

mais en utilisant l'argument ui aussi je ne pouvais pas récupérer la valeur sélectionnée ... il me retourne juste l'index sélectionné.

le menu déroulant semble lke cette

<select name="myselect" id="myselect"> 
      <option value="20">txt1</option> 
      <option value="30">txt2</option> 
      <option value="40" selected="selected">txt3</option> 
      <option value="50">txt4</option> 
      <option value="60">txt5</option> 
     </select> 

Il serait excellent si je pouvais être en mesure de déclencher l'événement onchange de la zone de sélection, mais ressemble lorsque vous utilisez le curseur, la valeur des changements de liste déroulante, mais cela ne déclenche pas l'événement.

Toute aide est vraiment appréciée!

Merci

+1

C'est ce que j'ai finalement fini par faire Depuis le menu déroulant est changé de toute façon ... J'ai appelé sur le menu déroulant et lire ses valeurs ... $ (» sélectionnez # myselect '). selectToUISlider ({sliderOptions: {stop: myFunction ($ (this) .parent(). find (' select ') [0])}}); et à l'intérieur de myFunction, j'ai lu ce qui est sélectionné dans la liste déroulante ... quelqu'un a-t-il une meilleure idée? –

Répondre

4

L'événement que vous êtes sur le curseur de l'interface utilisateur, pas <select> ... mais la valeur <select> est déjà mis à jour, donc juste chercher que, comme ceci:

$('#myselect').selectToUISlider({ 
    sliderOptions: { 
    stop: function(e,ui) { 
     var currentValue = $('#myselect').val(); 
    } 
    } 
}); 
1

I Je suis tombé sur ce même problème où j'avais besoin d'obtenir la nouvelle valeur si le curseur ou la liste déroulante de sélection changeait, mais l'option 'stop' ne fonctionnerait pas lorsque j'utiliserais la liste déroulante de sélection. Donc, je viens d'utiliser l'option sliderOptions 'change' avec une fonction. Ainsi, tout comme la réponse de Nick, mais comme ceci:

$("select").selectToUISlider({ 
    // labels and tooltipSrc are selectToUISlider specific options 
    labels: 0, 
    tooltipSrc: "value", 
    sliderOptions: { 
     // swapped out stop for change here 
     change: function(e,ui) { 
      console.log($('select').val()); 
     } 
     } 
}); 
Questions connexes