Estoy utilizando el cuadro de diálogo de la interfaz de usuario de jQuery para el envío de formularios ajax. Quiero cambiar el texto de mi botón de guardar para esperar, cuando el usuario haga clic en él y vuelva a Guardar cuando se complete la llamada ajax. pls ayúdameCambio dinámico del cuadro de diálogo de la interfaz de usuario de jQuery Botón Texto
Respuesta
Use $().text('Please Wait')
antes de hacer la llamada AJAX y luego agregue $().text('Save')
como la última operación en la devolución de llamada exitosa.
Tenga en cuenta que para esto, debe utilizar un elemento de button
, no un elemento input
:
<button>Text here</button>
estoy usando los botones de diálogo de jQuery UI. Así que quiero cambiar el texto de esos botones – saokat
¿Y cuál es tu problema? –
El problema es que los botones de diálogo de jQuery no tienen una identificación –
Usted tendrá que utilizar beforeSend
complete
y opciones que desee. Echa un vistazo a la documentación para obtener más información:
Suponiendo que está usando .dialog() con la opción de botones, se puede asignar una clase personalizada para el botón de enviar, y luego apuntar el texto del botón interno a través la clase que se asigna al rango de medición (ui-button-texto):
$("#dialog-test").dialog({
title: "My dialog",
buttons:
[
{
text: "Submit",
click: function() {
$(".my-custom-button-class > .ui-button-text").text("Please Wait...");
$("#some-form").submit();
},
'class': 'my-custom-button-class'
}
]
});
Cuando su guardado se realiza a través de la presente(), se podría utilizar la misma llamada para establecer el texto de nuevo a lo que desea.
$(".ui-dialog-buttonpane button:contains('Save') span").text("Please wait...");
Si se ayuda a nadie: la plena aplicación de ejemplo (PD: me prestó getDialogButton() de otro post en este sitio, pero no puedo recordar enlace).
//-> Change to Loading Notice:
setButton('.settingsDialog', 'Save', 'Saving...', false);
setTimeout(function() { setButton('.settingsDialog', 'Saving...', 'Save', true); }, 800);},
//Select the Dialog Buttons
function getDialogButton(dialog_selector, button_name) {
var buttons = $(dialog_selector + ' .ui-dialog-buttonpane button');
for (var i = 0; i < buttons.length; ++i) {
var jButton = $(buttons[i]);
if (jButton.text() == button_name)
{
return jButton;
}
}
return null;
}
//Button Controller for AJAX Loading:
function setButton(sDialogClass, sButtonName, sNewButtonName, bEnabled){
var btn = getDialogButton(sDialogClass, sButtonName);
btn.find('.ui-button-text').html(sNewButtonName);
if (bEnabled) {
btn.removeAttr('disabled', 'true');
btn.removeClass('ui-state-disabled');
} else {
btn.attr('disabled', 'true');
btn.addClass('ui-state-disabled');
}
}
este bit: btn.find ('. Ui-button-text'). Html (sNewButtonName) guardó mi tocino. Pero para obtener el botón, me resultó más fácil obtener la identificación del botón con un selector (puede establecer el id: "myButtonID" en la matriz en la que establece los botones, luego use un selector normal $ ("# myButtonId"). find ('.ui-button-text'). html ("new text") – Gurnard
Perfecto. Exactamente lo que estaba buscando. Debe estar integrado en el diálogo jQueryUI. – dualmon
$("#dialog-test").dialog({
title: "My dialog",
buttons:
[
{
text: "Submit",
click: function() {
$(".my-custom-button-class > .ui-button-text").text("Please Wait...");
//You may use $(this) as selector or allso $("#dialog-test")
$(this).parent().children('.ui-dialog-buttonpane').children().children().html('Please wait..');
//As you have only one button, it should not matter to specify child element, but you can like this:
//$($(this).parent().children('.ui-dialog-buttonpane').children().children()[0]).html('Please wait..');
$("#some-form").submit();
},
'class': 'my-custom-button-class'
}
]
});
Aunque la pregunta es muy antiguo que encuentro que la respuesta sea muy simple y no se ha dado aquí.
- Puede establecer un id para el botón y usarlo.
- Todos los botones de diálogo son botones jQuery UI, por lo tanto puede usar la función
$().button()
para modificar el botón.
El código JavaScript es:
$('#dialog').dialog({
buttons:[{
id: 'buttonId',
click: function() {
// your function
}]
});
$('#buttonId').button('option', 'label', 'Please wait...');
[Ver también esta respuesta] (http: // stackoverflow. com/questions/10312835/set-jquery-ui-dialog-button-id # 10312946) para una sintaxis más simple (que no sea de matriz). Funciona muy bien en conjunto con esta respuesta. – gibberish
Note the correct way para crear varios botones sobre la marcha:
'buttons', [
{
text: "Download",
click: function() {...}
},
{
text: "Not now",
click: function() {...}
}
]
Aquí hay un ejemplo usando el estilo no es un array: See this jsFiddle para un ejemplo .
Para mi versión de jQuery UI (1.11.4), este formato trabajado para cambiar el texto del botón:
$('#setActionButton').button('option').text('new text');
Sin embargo, no se restableció el botón con el nuevo texto en el cuadro de diálogo! Eso fue frustrante La respuesta de JaredBroad anterior es la que funcionó para mí, primero quitando todos los botones del diálogo y luego haciendo clic para encontrar el botón para cambiar el nombre. Luego cambió el texto todo el tiempo.
Me parece que si yo uso muchos diálogos con los mismos botones entonces puedo definir la clase a cada botón en cada diálogo y luego cambiar el texto en todos los botones.
$('#dialog1').dialog({
buttons:[{
class: "btnOK",
click: function() {
...
}
},
{
class: "btnClose",
click: function() {
...
}
}]
});
$('#dialog2').dialog({
buttons:[...]
});
$('.btnOK').button('option', 'label', 'Your text here');
$('.btnClose').button('option', 'label', 'Your text here');
También en lugar de clase puede definir Identificación para cada botón (sin embargo Identificación debe ser único)
- 1. ¿Cómo puedo desactivar un botón en un cuadro de diálogo de la interfaz de usuario jQuery?
- 2. ¿Cómo cambiar el color de fondo del cuadro de diálogo de la interfaz de usuario jQuery?
- 3. jQueryUI cuadro de diálogo - no aparece el texto del botón
- 4. jQuery UI botón de diálogo texto como una variable
- 5. jQuery diálogo modal botón de texto
- 6. jQuery: pregunta de diálogo - botón de cambio después de iniciar
- 7. Actualizar la posición del cuadro de diálogo jquery ui
- 8. Tamaño automático de un cuadro de diálogo de la interfaz de usuario jQuery en Internet Explorer
- 9. Detectar si un cuadro de diálogo de la interfaz de usuario de jQuery está abierto
- 10. Hacer un div anidado en un diálogo de interfaz de usuario jQuery cambiar el tamaño con el cuadro de diálogo?
- 11. cuadro de diálogo jQuery
- 12. jQuery UI: Estilo de botón de diálogo
- 13. El cuadro de diálogo de la interfaz de usuario de jQuery establece automáticamente el ancho del marco iframe
- 14. ¿Cerrar un cuadro de diálogo de la interfaz de usuario jQuery desde un elemento dentro de él?
- 15. Controlar la ubicación DOM de un diálogo de la interfaz de usuario de jquery
- 16. jQuery - Diálogo de cambio de tamaño automático en contenido dinámico y mantener la posición central
- 17. jQuery UI Posición del botón de diálogo
- 18. Formulario anidado dinámico en el cambio del cuadro de selección
- 19. ¿Cambiar el tamaño del botón de la interfaz de usuario jQuery?
- 20. ¿Por qué no aparece el cuadro de diálogo de la interfaz de usuario jQuery cuando está anidado div?
- 21. ¿Cómo cambiar el texto del botón para los botones "Sí" y "No" en el cuadro de diálogo Cuadro de mensaje.Mostrar?
- 22. C#: Mostrar cuadro de diálogo en el hilo de la interfaz de usuario de otro hilo
- 23. ¿La mejor manera de eliminar el botón de cerrar en el widget del cuadro de diálogo de jQuery UI?
- 24. ¿Cómo cambiar el tamaño del botón en el cuadro de diálogo de confirmación de Jquery Ui?
- 25. Obtener DialogResult del cuadro de diálogo personalizado
- 26. ¿Cómo se pueden deshabilitar las barras de desplazamiento en el cuadro de diálogo de la interfaz de usuario jQuery?
- 27. MVC knockout JS dentro del cuadro de diálogo JQuery
- 28. control de usuario ASP.NET y jQuery diálogo
- 29. Validación de cuadro de texto, problema de cambio de enfoque
- 30. Título de conjunto dinámico en el cuadro de diálogo
Si pudiera elegir la mejor respuesta para esta pregunta, sería [esto uno por ManojRK] (http://stackoverflow.com/questions/4591642/dynamically-changing-jquery-ui-dialog-box-button-text#15863018). Bien hecho, Manoj. – gibberish