> Faqs > Solucionar error datepicker is not a function de jQueryUI

Solucionar error datepicker is not a function de jQueryUI

Estoy usando asp.net mvc con c#. Cómo puedo colocar la fecha actual en un campo cuando no se va a ejecutar ningun evento previo, estoy con el uso de jquery? en la vista tengo lo siguiente:

 <div class="form-group">
    @Html.LabelFor(model => model.Alta, htmlAttributes: new { @class = "control-label col-md-2" })
    <div class="col-md-10">
        @Html.EditorFor(model => model.Alta, new { htmlAttributes = new { @class = "form-control datepicker" } })
        @Html.ValidationMessageFor(model => model.Alta, "", new { @class = "text-danger" })
    </div>
</div>

En el script tengo lo siguiente:

$(document).ready(function () {
        $("#Alta").datepicker({
        format: "dd/MM/yyyy",
        language: "es",
        todayHighlight: true,
        autoclose: true
    }).datepicker("setDate", new Date());
});

pero en la página no me aparece ninguna fecha, solo me aparece dd/mm/aaaa en la consola del navegador me dice:

jquery-3.4.1.js:3841 jQuery.Deferred exception: $(...).datepicker is not a function TypeError: $(...).datepicker is not a function

Respuestas

Tiene toda la pinta que no estás cargando el plugin de jQueryUI que necesitas para implementar el Datepicker. Dado que la función datepicker dice que no existe (datepicker is not a function) y por tanto da impresión que no se ha cargado el código del plugin.

Yo verificaría:

  1. Nos muestras el código de tu vista Razor, pero la verdad es que interesa poco ese código, sino más bien habría que verificar el código HTML generado por esa vista.
  • Verificar que se ha creado correctamente el campo input
  • Verificar que el campo input tiene el id="Alta", ya que estás usando ese ID en tu Javascript.
  1. Como no has mostrado el HTML generado, no se sabe si estás o no cargando jqueryUI correctamente, es decir, has colocado el <script> correspondiente con el código de la librería jQueryUI.

Comentario de solución mediante el código

Dejamos aquí el código que según Nadi, la persona que había preguntado, solucionó su problema, ya que el código del comentario que nos ha dejado se lee mal por no poder formatearse.

$(document).ready(function () {
    var myDate = new Date();
    var fechadehoy = myDate.getFullYear() + '-' + ("0" + (myDate.getMonth() + 1)).slice(-2) + '-' + ("0" + myDate.getDate()).slice(-2);
    
    $("#Alta").val(fechadehoy);
});
Camila
412 16 25 5
Mi id del campo es correcto y la carga de jquery también, Gracias por tu respuesta, solucioné el problema agregando un script diferente: $(document).ready(function () { var myDate = new Date(); var fechadehoy = myDate.getFullYear() + '-' + ("0" + (myDate.getMonth() + 1)).slice(-2) + '-' + ("0" + myDate.getDate()).slice(-2); $("#Alta").val(fechadehoy); }); Saludos.