2011-09-23 21 views
14

Abbiamo uno slider ui che utilizziamo e funziona perfettamente.dispositivo di scorrimento ui con casella di testo

codice:

jQuery(function() { 
jQuery("#slider-range-min").slider({ 
    range: "min", 
    value: 1, 
    step: 1000, 
    min: 0, 
    max: 5000000, 
    slide: function(event, ui) { 
     jQuery("#amount").val("$" + ui.value); 
    } 
}); 
jQuery("#amount").val("$" + $("#slider-range-min").slider("value")); 
}); 

Come potete vedere ci permettono all'utente di scegliere nulla tra 0 e 5.000.000.

HTML è:

<div id="slider-range-min" style="width: 460px; float:left;margin:10px;"></div> 

Quello che voglio fare è aggiungere un elemento di input di testo, che lavora in armonia con il cursore, in modo da utente scorre la casella di Texy aumenta, diminuisce qualunque cosa ..

O se l'utente digita numeri nell'elemento di input, il cursore si sposta in modo appropriato.

Qualsiasi aiuto per favore?

Preview è:

enter image description here

+1

Penso che si possa montare qualcosa usando [l'intervallo con l'esempio minimo fissato] (http://jqueryui.com/demos/slider/hotelrooms.html). –

+0

grazie @rfausak lo verificherà – 422

+0

FYI: anche trovato gruppo di filamenti hanno raggiunto questo obiettivo, ma apparentemente sono gli unici .. http://www.filamentgroup.com/lab/update_jquery_ui_slider_from_a_select_element_now_with_aria_support/ vorrebbe vedere gli altri – 422

risposta

24

è necessario aggiornare l'elemento input (come si sta facendo ora per l'elemento #amount) su slide:

$("#slider").slider({ 
    range: "min", 
    value: 1, 
    step: 1000, 
    min: 0, 
    max: 5000000, 
    slide: function(event, ui) { 
     $("input").val("$" + ui.value); 
    } 
}); 

Inoltre, è necessario associare all'evento change per l'elemento input e chiamare il metodo value del dispositivo di scorrimento:

$("input").change(function() { 
    var value = this.value.substring(1); 
    console.log(value); 
    $("#slider").slider("value", parseInt(value)); 
}); 

Esempio:http://jsfiddle.net/andrewwhitaker/MD3mX/

Non c'è alcuna convalida succedendo qui (è necessario includere il "$" segno per farlo funzionare). Potresti aggiungere alcuni servizi igienico-sanitari più robusti per migliorarlo.

+0

Questo è ottimo Andrew, l'unico problema che vedo è che l'utente non può digitare l'elemento di input e il cursore si sposta su quella posizione valutata, finché non si fa clic sull'input. Suppongo che potrebbe aggiungere onkeyup hey .. Ma ottimo codice, votato – 422

+0

@ 422: Che * dovrebbe * funzionare, potrebbe essere necessario inserire un valore elevato per vederlo (provare ** $ 3000000 ** per esempio) –

+0

cambiato div a

e ancora non si aggiorna automaticamente durante la digitazione, anche con numeri più grandi. A meno che non sia un problema di jsfiddle, eseguirà il porting su html e testerà – 422

Problemi correlati