Кнопка включения / выключения JQuery в IE7 - PullRequest
4 голосов
/ 30 августа 2011

Я использую следующий код для отключения кнопки отправки

$("input[type='submit']").attr("disabled", "disabled");

И этот код для его повторного включения:

$("input[type='submit']").removeAttr("disabled");

Он отлично работает во всех браузерах, которые я пробовал, кроме Internet Explorer 7. IE7 нормально отключит кнопку, но при повторном включении кнопка все равно выглядит отключенной.

Эта кнопка включена и активна, несмотря на курсор и серый цвет:

IE7 enabled button with disabled appearance

(У коллеги была такая же проблема с IE8, но я не смог ее воспроизвести.)

У меня есть обходной путь, который делает эту работу, но он уродлив. У меня две кнопки, одна отключена, другая нет. Для начала я показываю отключенную и скрываю включенную кнопку.

$("input[type='submit']:first").css("display","inline"); //show disabled
$("input[type='submit']:last").css("display","none");    //hide enabled
...
<input name="Submit" type="submit" value=" Sign In " tabindex=3 disabled>
<input name="Submit" type="submit" value=" Sign In " tabindex=3 >

Когда мои условия "если" выполнены, я скрываю отключенную отправку и показываю включенную.

Есть ли более элегантное решение этой проблемы на основе CSS или JQ?

Ответы [ 3 ]

8 голосов
/ 30 августа 2011
$("input[type='submit']").prop("disabled", false);
3 голосов
/ 30 августа 2011

Попробуйте

$("input[type='submit']").attr("disabled", "");

или

$("input[type='submit']").attr("disabled", false);
1 голос
/ 09 марта 2012

@ Burak - это работает очень хорошо (Джон Резиг упоминает об использовании .prop () вместо .attr () для этого конкретного случая).Я также попробовал submitbutton.prop("disabled", false); и submitbutton.prop("disabled", true);, чтобы включить и отключить IE 7/6.

...