Foros del Web » Programando para Internet » Jquery »

[SOLUCIONADO] Laravel - jquery - datepicker

Estas en el tema de Laravel - jquery - datepicker en el foro de Jquery en Foros del Web. en general explico que cuando utilizo el datepicker afuera de las plantillas de Blade anda perfecto; cuando lo pongo dentro del blade no me carga ...
  #1 (permalink)  
Antiguo 12/03/2020, 19:18
 
Fecha de Ingreso: agosto-2006
Mensajes: 388
Antigüedad: 17 años, 8 meses
Puntos: 0
Laravel - jquery - datepicker

en general explico que cuando utilizo el datepicker afuera de las plantillas de Blade anda perfecto; cuando lo pongo dentro del blade no me carga y el datepicker me devuelve el error "dateFecha.js:1 Uncaught ReferenceError: $ is not defined"

Archivo app.blade.php dentro del head tengo el código de jquery:

Código PHP:
<script src="{{ asset('js/jsQuery.js') }}"></script> 
js es la carpeta que se encuentra dentro de la carpeta publica.

Ademas antes de cerrar el head tengo todo lo relacionado a el código de datepicker (ya aclaro que también tengo todas las carpetas necesarias descargadas en la carpeta publica.

Código PHP:
    <link rel="stylesheet" href="{{asset('datePickerjp/css/bootstrap-datepicker3.css')}}">
    <
script src="{{asset('datePickerjp/js/bootstrap-datepicker.js')}}"></script>

    <script src="{{asset('datePickerjp/locales/bootstrap-datepicker.es.min.js')}}"></script> 
El archivo vista que tengo tiene el siguiente codigo:

Código PHP:
@section('content')
// aqui todo el codigo necesario
//donde se encuentra el input
                        
<form method="POST" action="{{ url('cajaDiaria') }}">
                            {{ 
csrf_field() }}
                            <
div class="form-group">
                                <
label for="fechamov">Elija dia de caja diaria:</label>
                                <
input type="text" class="form-control datepicker" name="fechamov" id="fechamov" value="{{ old('fechamov') }}" placeholder="aaaa-mm-dd">
                            </
div>
                            <
button type="submit" class="btn btn-primary">Ver Caja Diaria</button>
                        </
form>
@
endsection
<script src="{{asset('/js/dateFecha.js')}}">"></script> 
y el archivo dateFecha.js con el siguiente codigo:

Código:
    $('.datepicker').datepicker({
    format: "yyyy/dd/mm",
    todayBtn: "linked",
    language: "es",
    autoclose: true,
    orientation: "auto",
    todayHighlight: true
	});
Me parece que el tema esta en el orden en el que se ejecutan los bloques de archivo.

Cualquier ayuda, sera bienvenida.
Muchas gracias
  #2 (permalink)  
Antiguo 12/03/2020, 22:41
Avatar de ArturoGallegos
Moderador
 
Fecha de Ingreso: febrero-2008
Ubicación: Morelia, México
Mensajes: 6.774
Antigüedad: 16 años, 2 meses
Puntos: 1146
Respuesta: Laravel - jquery - datepicker

Tambien el error esta en que realmente nunca declaraste $ y das por sentado que lo hiciste.

utiliza

Código Javascript:
Ver original
  1. jQuery('.datepicker').datepicker({
  2.     format: "yyyy/dd/mm",
  3.     todayBtn: "linked",
  4.     language: "es",
  5.     autoclose: true,
  6.     orientation: "auto",
  7.     todayHighlight: true
  8.     });

o bien

Código Javascript:
Ver original
  1. var $j = jQuery.noConflict();
  2.  
  3. $j(function($){
  4. $('.datepicker').datepicker({
  5.     format: "yyyy/dd/mm",
  6.     todayBtn: "linked",
  7.     language: "es",
  8.     autoclose: true,
  9.     orientation: "auto",
  10.     todayHighlight: true
  11.     });
  12. });
  #3 (permalink)  
Antiguo 13/03/2020, 06:09
 
Fecha de Ingreso: agosto-2006
Mensajes: 388
Antigüedad: 17 años, 8 meses
Puntos: 0
Respuesta: Laravel - jquery - datepicker

Muchas gracias por tu respuesta, tu sabes que el problema sigue estando.

Al definir la variable como lo expones, me sigue dando el error que no reconoce ahora en vez del $, la variable definida

Codigo:

Código:
var $fecha = jQuery.noConflict();
 
$fecha(function($){
$('.datepicker').datepicker({
    format: "yyyy/dd/mm",
    todayBtn: "linked",
    language: "es",
    autoclose: true,
    orientation: "auto",
    todayHighlight: true
    });
});
Error:
Código:
Uncaught ReferenceError: jQuery is not defined
Sigo, cualquier ayuda sera bienvenida.

Gracias
  #4 (permalink)  
Antiguo 13/03/2020, 09:50
Avatar de ArturoGallegos
Moderador
 
Fecha de Ingreso: febrero-2008
Ubicación: Morelia, México
Mensajes: 6.774
Antigüedad: 16 años, 2 meses
Puntos: 1146
Respuesta: Laravel - jquery - datepicker

jQuery is not defined es un problema muy distinto a $

si jQuery no esta definido definitivamente el problema es el orden en que terminan de cargar.

1.- asegurate que la librería de jQuery sea invocada antes que tu código,
2.- utiliza las propiedades async y defer

async hará que cargue en paralelo con tu sitio,
defer hará que cargue una vez que termino de cargar el sitio, es decir sera lo ultimo en cargar.

<script src="..." async />
<script src="..." defer />

No recomiendo utilizar ambos sobre el mismo script, los resultados pueden ser muy distinto a lo deseado.
  #5 (permalink)  
Antiguo 13/03/2020, 19:39
 
Fecha de Ingreso: agosto-2006
Mensajes: 388
Antigüedad: 17 años, 8 meses
Puntos: 0
Respuesta: Laravel - jquery - datepicker

Arturo,
Ahora si quedo pronto, el código del datepicker en mi pagina se cargaba antes del jquery.
Quedo solucionado al decirle que el de mi pagina se cargara al final del sitio con defer.

Quedando así,

Código:
<script src="{{asset('/js/dateFecha.js')}}" defer></script>
Muchas gracias, quedo solucionado

Etiquetas: datepicker, laravel
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 20:40.