Foros del Web » Programando para Internet » Jquery »

porque el datepicker no funciona con el ajax

Estas en el tema de porque el datepicker no funciona con el ajax en el foro de Jquery en Foros del Web. Buenas tardes estoy utilizando dos paginas dependiendo de una búsqueda si consigue me trae los objetos habilitados o deshabilitados. El problema que uno de los ...
  #1 (permalink)  
Antiguo 14/05/2015, 10:28
Avatar de jcamacho  
Fecha de Ingreso: marzo-2008
Mensajes: 72
Antigüedad: 16 años, 8 meses
Puntos: 1
porque el datepicker no funciona con el ajax

Buenas tardes estoy utilizando dos paginas dependiendo de una búsqueda si consigue me trae los objetos habilitados o deshabilitados. El problema que uno de los input es una fecha que utilizo el datepicker y cuando esta dentro del div que hace el llamado al ajax no funciona... si este lo pongo fuera del div que es el que se refresca dependiendo del resultado si funciona, porque pasa esto?
  #2 (permalink)  
Antiguo 14/05/2015, 12:20
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 13 años
Puntos: 977
Respuesta: porque el datepicker no funciona con el ajax

Eso sucede porque el widget datepicker se cargó al inicio, por lo que los elementos cargados después de la carga inicial de la página, no se verán afectados.

Puedes asignarle el widget al momento de añadirlo al documento (en la respuesta que recibe el método Ajax).

Saludos
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #3 (permalink)  
Antiguo 14/05/2015, 13:29
Avatar de jcamacho  
Fecha de Ingreso: marzo-2008
Mensajes: 72
Antigüedad: 16 años, 8 meses
Puntos: 1
Respuesta: porque el datepicker no funciona con el ajax

hola gracias por responder no entiendo muy bien a que te refieres con: Puedes asignarle el widget al momento de añadirlo al documento (en la respuesta que recibe el método Ajax)

si pudieses ayudarme un poquito mas o dar un sencillo ejemplo para entender mejor te lo agradeceria
  #4 (permalink)  
Antiguo 14/05/2015, 13:35
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 13 años
Puntos: 977
Respuesta: porque el datepicker no funciona con el ajax

¿Cómo es que logras que un elemento pueda funcionar como un calendario con el datepicker?

Si sabes cómo, entonces, solo te queda añadir eso en la parte del código en donde recibes la respuesta a la petición asíncrona.

Saludos
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #5 (permalink)  
Antiguo 15/05/2015, 13:01
Avatar de jcamacho  
Fecha de Ingreso: marzo-2008
Mensajes: 72
Antigüedad: 16 años, 8 meses
Puntos: 1
Respuesta: porque el datepicker no funciona con el ajax

bueno este es el código que estoy colocando y no le para:
en mi primera pagina tengo un input y un botón cuando le de clic el va a llamar una funcion que va a correr el ajax y colocar los objetos restantes:

function Buscar(){
cargar('contenedor','BuscarDatos.php?vparametro='+ document.form.txtprueba.value);
}

mi div que tengo en esta pagina se llama contenedor y es donde se va a recargar lo otro, en mi segunda pagina que es BuscarDatos.php tengo lo siguiente:

<link rel="stylesheet" type="text/css" href="demos.css">
<link rel="stylesheet" type="text/css" href="jquery-ui.css">
<script src="jquery-1.5.1.js"></script>
<script src="jquery.ui.core.js"></script>
<script src="jquery.ui.widget.js"></script>
<script src="jquery.ui.datepicker.js"></script>

<script>
$(function() {

$.datepicker.regional['es'] =
{
closeText: 'Cerrar',
prevText: 'Previo',
nextText: 'Próximo',

monthNames: ['Enero','Febrero','Marzo','Abril','Mayo','Junio',
'Julio','Agosto','Septiembre','Octubre','Noviembre ','Diciembre'],
monthNamesShort: ['Ene','Feb','Mar','Abr','May','Jun',
'Jul','Ago','Sep','Oct','Nov','Dic'],
monthStatus: 'Ver otro mes', yearStatus: 'Ver otro año',
dayNames: ['Domingo','Lunes','Martes','Miércoles','Jueves','V iernes','Sábado'],
dayNamesShort: ['Dom','Lun','Mar','Mie','Jue','Vie','Sáb'],
dayNamesMin: ['Do','Lu','Ma','Mi','Ju','Vi','Sa'],
dateFormat: 'dd/mm/yy', firstDay: 0,
initStatus: 'Selecciona la fecha', isRTL: false};
$.datepicker.setDefaults($.datepicker.regional['es']);

$("#c_fechcomun").datepicker({ dateFormat: "dd/mm/yy",minDate: '+0d',changeMonth: true, changeYear: true, yearRange: '0:+1'}).val();
});
</script>

<input type="text" id="c_fechcomun" name="c_fechcomun" readonly="readonly" size="10">

si corro la segunda pagina sola BuscarDatos.php me muestra el calendario pero si lo hago como quiero que se valla a la primera despues de clic valla a correr el ajax y dependiendo del valor del input en la segunda pagina haga una busqueda de información y si consigue la información habilite o deshabilite los objetos que tengo en esta segunda pagina entre ellos esa caja de texto "c_fechcomun" que me muestra el calendario no lo hace
  #6 (permalink)  
Antiguo 15/05/2015, 13:41
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 13 años
Puntos: 977
Respuesta: porque el datepicker no funciona con el ajax

Como te dije al inicio, cuando añades un elemento luego de haber cargado la página, cualquier código JavaScript que hayas hecho, no surtirá efecto pues cargó antes de la adición del nuevo elemento.

Lo que tendrías que hacer es cargar el código en donde asignas el widget datepicker al elemento de id en el momento en el que recibes la respuesta en el método Ajax y después de haber añadido al/los nuevo/s elemento/s.

Saludos
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand

Etiquetas: ajax, javascript
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 10:15.