Tengo un selector de fecha y usted puede seleccionar una de datos y que a la fecha se encuentra en un campo de texto. Pero el valor en el campo de texto está vacío, Así como obtener el valor en el campo de texto? este es el textfield:

<input name="form_inp1" title="" class="xforms-input xforms-control qmatic-dateslot xforms-incremental xforms-ap-default hasDatepicker" id="form_inp1" type="text" x-incremental="1" value=""/>

y este es el script para el datepicker:

inp.datepicker({
     dateFormat: dateFormat,
     beforeShowDay: function (date) {
         var dt = $.datepicker.formatDate('yy-mm-dd', date)
         return [$('#form_one3 > option:gt(0)[value="' + dt + 'T00:00:00Z"]').length != 0];
     },  
     changeMonth: true,
     changeYear: true,
     showWeek: true,
     firstDay: 1,
     yearRange: "c-100:c+15",
     showOn: inp.hasClass("ui-date-picker-onfocus") ? "focus" : "button"
})

Gracias

Tengo ahora como esta:

; (function ($) {
$(function () {
$("form.xforms-form").bind({
XForms_Enrich: function (e) {
if ($.fn.datepicker) {
$("input.qmatic-dateslot", e.args.data).each(function () {
var inp = $(this);
if (inp.is(":disabled")) return;
var tabindex = inp.attr("tabindex");
var dateFormat = $.xforms.getProperty(inp, 'dateFormat') || 'd-M-yy';
dateFormat = dateFormat.replace(/m/g, '0').replace(/h/gi, '0').replace(/t/g, '').replace(/M/g, 'm').replace('yyyy', 'yy');
$("#" + inp.attr("id") + " ~ button.ui-datepicker-trigger").attr("tabindex", tabindex);
var clearBtn = $('<button class="ui-datepicker-clear" type="button" tabindex="' + tabindex + '">x</button>').click(function () { inp.val(''); inp.change(); return false; });
inp.after(clearBtn);
inp.datepicker({
dateFormat: dateFormat,
beforeShowDay: function (date) {
var dt = $.datepicker.formatDate('yy-mm-dd', date, "getDate")                               
return [$('#form_one3 > option:gt(0)[value="' + dt + 'T00:00:00Z"]').length != 0];
},                           
changeMonth: true,
changeYear: true,
showWeek: true,
firstDay: 1,
yearRange: "c-100:c+15",
showOn: inp.hasClass("ui-date-picker-onfocus") ? "focus" : "button"
})
var dateVal = $("#form_inp1").datepicker("getDate");
alert(dateVal);
});
$("#ui-datepicker-div").hide();
}
}
})
})
})(jQuery);

Me trate de esta manera:

 inp.datepicker({
dateFormat: dateFormat,
beforeShowDay: function (date) {
var dt = $.datepicker.formatDate('yy-mm-dd', date, "getDate")                               
return [$('#form_one3 > option:gt(0)[value="' + dt + 'T00:00:00Z"]').length != 0];
},
changeMonth: true,
changeYear: true,
showWeek: true,
firstDay: 1,
yearRange: "c-100:c+15",
showOn: inp.hasClass("ui-date-picker-onfocus") ? "focus" : "button"
})
var dateVal = $("#form_inp1").datepicker("getDate");
alert(dateVal);
});
$("#ui-datepicker-div").hide();

Lo hago ahora, como este:

 inp.datepicker({
dateFormat: dateFormat,
beforeShowDay: function (date) {
var dt = $.datepicker.formatDate('yy-mm-dd', date, "getDate")                               
return [$('#form_one3 > option:gt(0)[value="' + dt + 'T00:00:00Z"]').length != 0];
},
onSelect: function (dateText, inst) {
var dateval = $("#form_inp1").datepicker("getDate");
alert(dateval);
//alert(dateText);
},
changeMonth: true,
changeYear: true,
showWeek: true,
firstDay: 1,
yearRange: "c-100:c+15",
showOn: inp.hasClass("ui-date-picker-onfocus") ? "focus" : "button"
})

con el onSelect. Pero yo por ejemplo esta de salida: mié jul 29 00:00:00 UTC+0200 2015 como de salida. Cómo obtener la misma salida de la señal como en el campo de texto. Por lo que el resultado tiene que ser: 29-7-2015.

Gracias

Oke, yo lo tengo ahora como esta:

  onSelect: function (dateText, inst) {
dateText = $("#form_inp1").val();
},

Pero Si me miro en el textfield

<input name="form_inp1" title="" class="xforms-input xforms-control qmatic-dateslot xforms-incremental xforms-ap-default hasDatepicker" id="form_inp1" type="text" x-incremental="1" value=""/>

valor está aún vacía

el valor real de lo que en la salida es: 2015-08-04T00:00:00Z.

Pero me da como valor seleccionado de datepicker este: 4-8-2015T00:00:00Z

Entonces, ¿cómo conseguir el correcto devuelve la fecha como esta: 2015-08-04T00:00:00Z.

Gracias

  • Puede usted dar jsfiddle de su código?
  • intenta getDate() método? api.jqueryui.com/datepicker/#method-getDate
  • Gracias. Te refieres a como esta: var dt = $.selector de fecha.formatDate(‘yy-mm-dd’, la fecha, «getDate»)
  • en realidad, como este var dateVal = $("#form_inp1").datepicker("getDate");
  • Puedo editar el post

2 Comentarios

  1. 3

    Primero, asegúrese de que usted está asignando el datepicker a la derecha del elemento, a continuación, seleccione el elemento de entrada y el uso de .val() en el elemento.

    Ejemplo:

    HTML:

    <!doctype html>
    <html lang="en">
    <head>
    <meta charset="utf-8">
    <title>jQuery UI Datepicker - Default functionality</title>
    <link rel="stylesheet" href="http://code.jquery.com/ui/1.11.4/themes/smoothness/jquery-ui.css">
    <script src="http://code.jquery.com/jquery-1.10.2.js"></script>
    <script src="http://code.jquery.com/ui/1.11.4/jquery-ui.js"></script>
    <link rel="stylesheet" href="/resources/demos/style.css">
    <script>
    $(function() {
    $( "#datepicker" ).datepicker();
    //selecting the button and adding a click event
    $("#alert").click(function() {
    //alerting the value inside the textbox
    var date = $("#datepicker").datepicker("getDate");
    alert($.datepicker.formatDate("dd-mm-yy", date));
    });
    });
    </script>
    </head>
    <body>
    <p>Date: <input type="text" id="datepicker"></p>
    <p>Alert the value: <button id="alert">Alert!</button>
    </body>
    </html>

    Espero que esto ayude.

    P. S.: Aquí hay un enlace a la documentación oficial, en caso de necesidad: https://jqueryui.com/datepicker/

    • Gracias. Pero donde el evento se activa cuando el usuario selecciona una fecha, por ejemplo: 24-8-2015. Gracias
    • Actualizo el post
    • Usted puede utilizar el built-in formater de datepicker que es formatDate. Usted sólo tiene que pasar el formato como una cadena y la Fecha en que el objeto o el selector a la fecha. He de actualizar el ejemplo anterior.
    • Me estoy perdiendo algo? No veo donde se utiliza .val() en el código.
    • la llamada $.datepicker.formatDate("dd-mm-yy", date) es un poco similar a .val(). Ambos le dará una cadena, por lo que en realidad se puede cambiar entre entonces.
  2. 7

    con: $("#form_inp1").datepicker("getDate") obtendrá un objeto Date

    con: $("#form_inp1").val() obtendrá una cadena

Dejar respuesta

Please enter your comment!
Please enter your name here