¿Cómo hago para deshabilitar un botón? en el cuadro de diálogo jQuery UI ? Parece que no puedo encontrar esto en ninguna de la documentación en el enlace de arriba.
Tengo 2 botones en la confirmación modal ("Confirmar" y "Cancelar"). En ciertos casos, quiero deshabilitar el botón "Confirmar".
.button()
complemento, por lo que ya no son necesariamente las mejores / más limpias soluciones.Respuestas:
Si incluye el
.button()
complemento / widget que contiene jQuery UI (si tiene la biblioteca completa y está en 1.8+, la tiene), puede usarla para deshabilitar el botón y actualizar el estado visualmente, así:Puede probarlo aquí ... o si tiene una versión anterior o no usa el widget de botón, puede deshabilitarlo así:
Si lo desea dentro de un cuadro de diálogo específico, digamos por ID, haga esto:
En otros casos en los que
:contains()
podría dar falsos positivos, puede usarlo.filter()
así, pero es excesivo aquí ya que conoce sus dos botones. Si ese es el caso en otras situaciones, se vería así:Esto evitaría que
:contains()
coincida una subcadena de otra cosa.fuente
$("#dialogID").nextAll(".ui-dialog-buttonpane").find("button:contains('Confirm')").attr("disabled", true).addClass("ui-state-disabled");
$(".ui-dialog-buttonpane button:contains('Confirm')").button("disable");
aunque si desea deshabilitar el botón de una función que tiene para ello, debe widgetizar ese diálogo y deshabilitar el botón después de eso; como este$(this).dialog("widget").find(".ui-dialog-buttonpane button:contains('Confirm')").button("disable");
Parece que cualquiera, incluso en esta pregunta vinculada , ha propuesto esta solución, similar a la primera parte de la respuesta dada por Nick Craver:
Luego, en otro lugar, debería poder usar la API para el botón jquery UI:
fuente
{text:"ok",disabled:true,click: function(){}}
$("#dialog").dialog("widget").find(".button-ok-class").button("enable")
También puede usar el atributo
nodocumentado ahoradisabled
:Para habilitar después de que se haya abierto el diálogo, use:
JsFiddle: http://jsfiddle.net/xvt96e1p/4/
fuente
attr: { 'data-value' : 'some value here' }
si desea agregar el atributodata-value
al botón.disabled
atributo debe asignarse al crear los botones.Lo siguiente funciona desde la función de clic de botones:
fuente
La clase identifica un botón
ui-button
. Para deshabilitar un botón:A menos que esté creando dinámicamente el diálogo (que es posible), sabrá la posición del botón. Entonces, para deshabilitar el primer botón:
La
ui-state-disabled
clase es lo que le da a un botón ese bonito estilo atenuado.fuente
Creé una función jQuery para hacer esta tarea un poco más fácil. Probablemente ahora hay una mejor solución ... de cualquier manera, aquí están mis 2 centavos. :)
Simplemente agregue esto a su archivo JS:
Deshabilitar el botón 'Aceptar' en el diálogo con la clase 'diálogo'
Habilitar todos los botones:
Habilite el botón 'Cerrar' y cambie el color:
Texto en todos los botones rojos:
Espero que esto ayude :)
fuente
fuente
Puede sobrescribir la matriz de botones y dejar solo los que necesita.
fuente
este código deshabilita el botón con 'YOUR_BUTTON_LABEL'. puede reemplazar el nombre en contiene (). deshabilitar
reemplace 'YOUR_BUTTON_LABEL' con la etiqueta de su botón. para permitir
fuente
Puede hacer esto para deshabilitar el primer botón, por ejemplo:
fuente
La forma en que lo hago es
Cancel: function(e) { $(e.target).attr( "disabled","disabled" ); }
Esta es la forma más corta y fácil que encontré.
fuente
Si está utilizando knockout, entonces esto es aún más limpio. Imagina que tienes lo siguiente:
La magia proviene de la fuente jQuery UI :
Básicamente, puede llamar a CUALQUIER función de instancia de jQuery pasándola a través del objeto de botón.
Por ejemplo, si quieres usar HTML:
O, si desea agregar una clase al botón (puede hacerlo de varias maneras):
Tal vez estés loco, y quieras eliminar el botón del dom cuando está suspendido:
Estoy realmente sorprendido de que nadie parezca haber mencionado esto en la infinidad de hilos como este ...
fuente
Esto funcionó para mí
fuente
Puede deshabilitar un botón cuando construye el diálogo:
O puede deshabilitarlo en cualquier momento después de crear el diálogo:
fuente