jQuery - Realice un cambio en Var antes de almacenar

Soy un novato de jQuery, así que con eso fuera del camino, me he estado tirando de los pelos tratando de resolver un problema simple.

Cómo cambiar el valor de id=días que se extrae de un cuadro de entrada en la página web. Hay un control deslizante de interfaz de usuario que cambia el valor del cuadro de entrada.

El valor está calculando la fecha actual y futura en función del número de días enumerados en el control deslizante/cuadro de entrada.

var $days = $("#days");

La variable de arriba es, digamos, 3... que quiero multiplicar 3 por 7... el valor de $days ahora sería 21, que jQuery Calender debería mostrar la fecha correcta.

El resultado final... cada paso del control deslizante = 1 semana

Gracias...

Editar Se agregó más información ...... Esto debería ser la mayor parte del código que usa el Calendario.

    var date = new Date(baseDate.getTime()); // Calculate the new date
    date.setDate(date.getDate() + $days.val());
    $datepicker.datepicker('setDate', date); // And set into the datepicker
    $datepicker.datepicker({
    buttonImageOnly: true
    });

Por cierto muchas gracias por la rápida respuesta.....

Tenga en cuenta que el calendario está oculto, por lo que no interactúa con el calendario.

preguntado el 10 de marzo de 12 a las 11:03

Su código anterior está configurando la variable $days a un objeto jQuery que representa un elemento DOM con el id of days ... para obtener el valor que necesita usar val() ... pero sigo sin entender tu pregunta... ¿qué estás tratando de lograr? -

Preparé una pequeña demostración para ti :) -

5 Respuestas

Para obtener el valor de un cuadro de entrada con id=days usarías:

var $days = $("#days").val();

Hice una pequeña demostración basada en tu pregunta, mira en vivo aquí: http://jsfiddle.net/PQkFP/

$(function() {
    $("#slider").slider({
    slide: function(event, ui) {
          var days = $("#slider").slider("value");
          $("#days").val(days);
          // you can see $.datepicker('setDate', <number of days>);
          $("#datepicker").datepicker("setDate",(days*7));
        }
  });
});

$(function() {
    $("#datepicker").datepicker();
});​

Fragmento HTML:

<head>
    <link rel="stylesheet" href="http://ajax.googleapis.com/ajax/libs/jqueryui/
                       1.8/themes/base/jquery-ui.css">
    <link rel="stylesheet" href="http://ajax.googleapis.com/ajax/libs/jqueryui/
                       1.8/themes/ui-darkness/jquery-ui.css">
    <script>

    </script>
</head>
<div class="demo">

<div id="slider"></div>
    Days : <input type="text" value="" id="days" />
<div id="datepicker"></div>
</div>
​

respondido 10 mar '12, 11:03

De nada @RichardMax. Considere aceptar la respuesta si fue útil. Ver cómo funciona la aceptación - Gedeón

Gracias por la ayuda, sigo absorbiendo lo que codificaste para descubrir cómo esto puede ayudarme con mi problema. Es prueba y error para mí... Hay tantas cosas en el guión de estimación que tengo que tener cuidado de no cambiar demasiado, ya que estropearía otras partes del guión... Necesito dormir un poco volveremos mañana... Gracias de nuevo por todos los que comentaron. - ricardo max

Agregué un código adicional directamente del archivo... le dará una imagen más clara de lo que está pasando... Su código se ve muy bien y probé usando ("setDate",(days*7)) ; en mi código, pero se bombardeó, funcionará mañana. - ricardo max

No entendí exactamente lo que quiere, pero si desea acceder al valor de un cuadro de entrada, debe hacer esto:

var days = $('input#days').val();

respondido 10 mar '12, 11:03

Si desea obtener el valor actual del cuadro de entrada con id = días, use la siguiente línea de código:

var days = $('#days').val();

o en tu caso

var $days = $('#days'); // cache object
var days = $days.val();

respondido 10 mar '12, 11:03

¿que estás tratando de hacer? ¿Obtener la fecha que es ($ días * 7) días a partir de ahora?

Puede acceder y cambiar el valor de los campos de entrada como cualquier otra variable js,

var $days = $("#days").val();
$days = $days*7;
alert($days);

¡Eso debería darte 21!

respondido 10 mar '12, 11:03

Le di una oportunidad pero fracasó. Trabajaré en ello un poco mañana... Gracias. - ricardo max

Gracias por toda su ayuda, chicos y chicas.... Me dieron algunas ideas geniales y con eso resolví mi problema.

La solución fue...

date.setDate(date.getDate() + [7 * $days.val()]);

Aquí está el código modificado...

        var date = new Date(baseDate.getTime()); // Calculate the new date
    date.setDate(date.getDate() + [7 * $days.val()]);
    $datepicker.datepicker('setDate', date); // And set into the datepicker
    $datepicker.datepicker({
            buttonImageOnly: true
    });

Hay más de una forma de despellejar a un gato. Si tiene una solución mejor o más adecuada, publíquela.

respondido 11 mar '12, 07:03

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.