jquery - open - metadatos drupal
drupal> vistas> filtro expuesto> enviar al cambiar (4)
Para volver a adjuntar este código después de la llamada ajax, inicialmente se debe adjuntar a través de Drupal.behaviors. Algo como esto:
Drupal.behaviors.myCustomModule = function(context) {
$(''#edit-tid'', context).change(function(){
$(''#views-exposed-form-MYVIEW-page-1'').submit();
});
}
Tenga en cuenta que el argumento de contexto se pasa al selector. Drupal.behaviors debe ser llamado de nuevo en el nuevo contenido cargado a través de ajax.
Actualización : no noté que estaba insertando el js a través del pie de página de las vistas. Lo anterior aún debería funcionar, simplemente reemplace ''myCustomModule'' con algún identificador único para que no anule otros comportamientos.
Tengo una vista con un solo filtro expuesto (una selección). Está utilizando ajax para volver a poblar cuando el usuario haga clic en "Aplicar". Me gustaría que no tengan que hacer clic en eso y simplemente volver a llenar cuando se cambie la selección. Supongo que voy a necesitar algunos JS más o menos así (aunque esto no parece funcionar):
$(''#edit-tid'').change(function(){
$(''#views-exposed-form-MYVIEW-page-1'').submit();
});
Primero, creo que eso lo haría, pero no se enviará. Alguien sabe por qué?
En segundo lugar, ¿cuál es la mejor manera de inyectar ese código? Estoy pensando en usar el pie de página de View porque es fácil, pero ¿hay alguna otra mejor idea?
ACTUALIZACIÓN: el código anterior funciona (se inyectó a través del pie de página de vistas), pero solo la primera vez. Supongo que la selección se sobrescribe con la llamada ajax, pero el comportamiento no se vuelve a conectar (o algo así). Hmm ...
ACTUALIZACIÓN # 2: Por simplicidad, voy a deshacerme del ajax.
@pradeep: puede insertarlo en una plantilla de vista temática (consulte http://www.group42.ca/theming_views_2_the_basics ) de su vista. (Lo siento, no pude escribir esto como comentario de acuerdo con el foro ui)
Creo que esta característica funciona de la caja (al menos en Drupal 7). Edite su vista y en forma expuesta elija
Exposed form style -> Settings
Entonces hay una opción
Autosubmit
donde puede elegir si desea "Enviar automáticamente el formulario una vez que se cambia un elemento". También existe la posibilidad de usar la opción
Hide submit button
que se explica por "Ocultar botón de enviar si Javascript está habilitado".
Si necesita que AJAX funcione al cambiar una opción de selección en su vista expuesta
Drupal.behaviors.myCustomModule = {
attach: function (context, settings) {
$(''select[data-drupal-selector="edit-YOUR-FIELD"]'', context).change(function(){
$(''#views-exposed-form-YOUR-VIEW-block-1 input.form-submit'').trigger(''click'');
});
}
};