2011-09-23 13 views
14

Tenemos un control deslizante ui que utilizamos, y funciona sin problemas.deslizador ui con entrada de cuadro de texto

código:

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")); 
}); 

Como se puede ver permitimos usuario elegir entre el 0 y 5.000.000.

HTML es:

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

Lo que quiero hacer es añadir un elemento de entrada de texto, que trabaja en armonía con el control deslizante, de manera que el usuario desliza el cuadro de texy aumenta, disminuye lo que sea ..

O si el usuario ingresa los números en el elemento de entrada, el control deslizante se mueve apropiadamente.

¿Alguna ayuda, por favor?

de vista previa es:

enter image description here

+1

Creo que podría mejorar algo usando el [rango con un mínimo ejemplo fijo] (http://jqueryui.com/demos/slider/hotelrooms.html). –

+0

gracias @rfausak lo comprobará – 422

+0

FYI: también encontró que el grupo de filamentos ha logrado esto, pero aparentemente son los únicos. Http://www.filamentgroup.com/lab/update_jquery_ui_slider_from_a_select_element_now_with_aria_support/ quisiera ver otehrs – 422

Respuesta

24

necesita actualizar el elemento input (como lo estás haciendo ahora para el elemento #amount) en slide:

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

Además, es necesario vincularse al evento change para el elemento input y llamar al método value del control deslizante:

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

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

No hay validación pasando aquí (debe incluir el "$" firmar para que funcione). Podría agregar un sanitario de entrada más robusto para mejorarlo.

+0

Eso es genial Andrew, el único problema que veo es que el usuario no puede escribir en el elemento de entrada y el control deslizante se mueve a esa posición de precio, hasta que haga clic fuera de la entrada. Supongo que podría agregar onkeyup oye .. Pero gran código, votó – 422

+0

@ 422: Eso * debería * funcionar, puede que tenga que ingresar un valor grande para verlo (intente ** $ 3000000 ** por ejemplo) –

+0

div cambiado a

y todavía no se actualiza automáticamente a medida que escribe, incluso con números más grandes. A menos que sea un problema jsfiddle, se transferirá a html y probará – 422

Cuestiones relacionadas