Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   DISABLED help plz (https://javascript.ru/forum/jquery/45701-disabled-help-plz.html)

xTODx 12.03.2014 17:55

DISABLED help plz
 
1) работает, но как его отключить??
$('#goreg').attr('disabled', 'disabled');


2) этот способ почему то не работает
$('#goreg').disabled=true;

форма
<input type="submit" id="goreg" name="goreg" value="Регистрация"/>

рони 12.03.2014 18:12

xTODx,
$('#goreg').attr('disabled', true);
   $('#goreg').prop('disabled', true);// good
   $('#goreg')[0].disabled = true

danik.js 12.03.2014 18:28

Цитата:

Сообщение от рони
$('#goreg').attr('disabled', true);

неправильно. Булевы атрибуты задают так:
<button disabled> <!-- HTML-->
<button disabled="disabled"><!-- XHTML/HTML-->
<button disabled=""><!-- XHTML/HTML -->

рони 12.03.2014 18:41

Цитата:

Сообщение от danik.js
неправильно

это шутка?

рони 12.03.2014 18:44

xTODx,
скорее всего элемента нет на странице когда
$('#goreg').attr('disabled', 'disabled');

danik.js 12.03.2014 19:07

Цитата:

Сообщение от рони
это шутка?

Если у меня аватарка Король и Шут горшка, то бля не значит что я всегда шучу, понятно?
Неправильно, но оно работает. Причем отчасти благодаря встроенному на этот случай костылю в jQuery.

Но и если el.setAttribute('disabled', true) - тоже будет работать, да. Вот только setAttribute('disabled', false) не снимет флаг disabled. Потому что true и false не распознаются как истина / ложь. Атрибуты могут быть только строчные. И в итоге true/false конвертируются в строку. Как правильно записывать булевы атрибуты я уже показал выше. С тем же успехом ты можешь писать setAttribute('disabled', 'blabla') - один хрен задизейблится. Но это не есть "правильно". Все работает только потому что jQuery и браузеры снисходительны к вам, мои криворукие друзья (да и я не святой).

рони 12.03.2014 19:19

:-? причём тут setAttribute непонимаю, может лучше подскажите как получить такую картинку в хроме тут

xTODx 13.03.2014 16:53

$('#goreg')[0].disabled = true

выполняет свою должность на 5+, только вот почему [0]?

рони 13.03.2014 17:14

xTODx,
потому что $ обьект а нужный нам элемент в ключе 0, обьект может содержать несколько элементов.

danik.js 13.03.2014 17:22

Цитата:

Сообщение от xTODx
почему

Сделай console.dir($('#goreg')) и все увидишь своими шарами.


Часовой пояс GMT +3, время: 23:22.