disabled javascript jquery jquery-ui jquery-mobile

javascript - disabled - jQuery Mobile cómo comprobar si el botón está deshabilitado?



is disabled jquery (11)

Desactivo el botón como este en mi página web de jQuery Mobile:

$(document).ready(function() { $("#deliveryNext").button(); $("#deliveryNext").button(''disable''); });

y puedo habilitarlo con

$("#deliveryNext").button(''enable'');

¿Pero cómo verifico si el botón está deshabilitado o habilitado?

Este comando da "indefinido":

$("#deliveryNext").attr(''disabled'')

¿Algunas ideas?

Editar: descubrí que el botón $ ("# deliveryNext"). ("Deshabilitar") solo sirve para cambiar el estilo del botón, el clic funciona bien, así que tengo que desactivar el botón de alguna manera. Lo intenté. attr (''disabled'', ''disabled'') pero cuando pruebo .attr (''disabled'') me vuelvo indefinido ...

Edit2: más sobre mi problema "real" en Cómo deshabilitar un botón de enlace en jQuery Mobile?


$ (''# StartButton: disabled'') ..

Luego verifica si no está definido.


Ante el mismo problema al tratar de verificar si un botón está deshabilitado. He intentado una variedad de enfoques, como btn.disabled , btn.disabled .is('':disabled'') , .attr(''disabled'') , .prop(''disabled'') . Pero nadie trabaja para mí.

Algunos, por ejemplo .disabled o .disabled .is('':disabled'') devueltos undefined y otros como .attr(''disabled'') el resultado incorrecto - false cuando el botón estaba realmente desactivado.

Pero solo una técnica funciona para mí : .is(''[disabled]'') ( con corchetes ).

Entonces, para determinar si un botón está deshabilitado, intente esto:

$("#myButton").is(''[disabled]'');


Lo que funcionó para mí fue esto:

$("#testButton").hasClass(''ui-state-disabled'')

Pero me gusta la respuesta de Tomwadley mucho más.

Sin embargo, el código is ('': disabled'') tampoco funciona para mí, que debería ser la mejor versión. No sé, por qué no funciona. :-(


Para ver qué opciones se han establecido en un botón de jQuery UI, use:

$("#deliveryNext").button(''option'')

Para verificar si está deshabilitado, puede usar:

$("#deliveryNext").button(''option'', ''disabled'')

Desafortunadamente, si el botón no se ha habilitado o deshabilitado explícitamente antes, la llamada anterior solo devolverá el objeto del botón, por lo que deberá verificar primero si el objeto de opciones contiene la propiedad ''deshabilitado''.

Entonces, para determinar si un botón está desactivado, puede hacerlo así:

$("#deliveryNext").button(''option'').disabled != undefined && $("#deliveryNext").button(''option'', ''disabled'')



Tratar

$("#deliveryNext").is(":disabled")

El siguiente código funciona para mí:

<script type="text/javascript"> $(document).ready(function () { $("#testButton").button(); $("#testButton").button(''disable''); alert($(''#testButton'').is('':disabled'')); }); </script> <p> <button id="testButton">Testing</button> </p>


Tratar

$("#deliveryNext").is(''[disabled]'');


Tuve el mismo problema y encontré que esto funciona:

if ($("#deliveryNext").attr(''disabled'')) { // do sth if disabled } else { // do sth if enabled }

Si esto te da indefinido, entonces puedes usar también la condición.

Cuando evalúas undefined , devolverá false .


Use .prop en su lugar:

$(''#deliveryNext'').prop(''disabled'')


try :is selector

$("#deliveryNext").is(":disabled")


http://jsfiddle.net/8gfYZ/11/ Compruebe aquí ...

$(function(){ $(''#check'').click(function(){ if( $(''#myButton'').prop(''disabled'') ) { alert(''disabled''); $(''#myButton'').prop(''disabled'',false); } else { alert(''enabled''); $(''#myButton'').prop(''disabled'',true); } }); });