Почему Disabled = ture для html работает? - PullRequest
4 голосов
/ 13 октября 2009

Я заметил в нашем коде, что есть disabled = ture' i исходный код для тега привязки. Мне было интересно, почему это работает в IE. Я также искал в Интернете, и он также используется в большом количестве исходного кода через поиск в сети. Я искал, если ture, IE может использовать неправильное написание true.

Кто-нибудь имеет представление об этом?

Ответы [ 6 ]

12 голосов
/ 13 октября 2009

Раньше для отключения элемента вы просто делали <input type="text" disabled>, поэтому большинству браузеров на самом деле все равно, что входит в этот атрибут. Я считаю, что disabled="disabled" стало стандартом исключительно для того, чтобы код был действительным XML.

5 голосов
/ 13 октября 2009

IE проверяет только наличие отключенного свойства. Это значение не имеет значения.

1 голос
/ 01 февраля 2017

Если вы используете фреймворк, такой как "dojo", для визуализации ваших графических виджетов, значение этой разметки HMTL может влиять на то, как ваши компоненты отрисовываются (и отличается для старых браузеров IE). Dojo обращает внимание на значение объекта DOM, представляющего отключенный атрибут. Например, эта разметка будет отображать включенный виджет, если вы используете Chrome или> = IE9:

disabled="false"

Это противоположно поведению ванильных HTML-компонентов, которые будут отключены только потому, что присутствует атрибут disabled (согласно сообщению Зеда).

В Chrome и IE9 / более поздних версиях отключенное значение атрибута точно сохраняется в объекте DOM, который его представляет (например, если атрибут отсутствует в разметке, атрибут даже не определен в объекте DOM). Поскольку объект DOM управляет dojo, когда он отображает свои виджеты, значение в разметке HTML окажет влияние.

В IE8 / ранее значение атрибута сохраняется в DOM по-другому. Во-первых, атрибут disabled всегда присутствует, а во-вторых, только его отсутствие обеспечивает значение false (в этом случае виджет dojo будет отображаться включенным).

Примечание: современные браузеры IE можно отключить, чтобы уменьшить их поведение до более старых версий (например, метатег X-UA-Compatible с content="IE=8").

Пример 1 ванильная HTML-разметка

Согласно сообщению Зеда, должен быть включен только первый из них (в любом браузере):

<button>OK</button>
<button disabled>OK</button>
<button disabled="false">OK</button>
<button disabled="true">OK</button>
<button disabled="mickey">OK</button>
<button disabled="">OK</button>

Пример 2 dojo html разметка

Первый и третий из них включены с помощью dojo (в Chrome / IE9 или более поздней версии):

<button dojoType="dijit.form.Button">OK</button>
<button dojoType="dijit.form.Button" disabled>OK</button>
<button dojoType="dijit.form.Button" disabled="false">OK</button>
<button dojoType="dijit.form.Button" disabled="true">OK</button>
<button dojoType="dijit.form.Button" disabled="mickey">OK</button>
<button dojoType="dijit.form.Button" disabled="">OK</button>

В IE8 или ниже приведенное выше будет отображаться точно так же, как в первом примере.

Странно "" оценивает ложное значение в JavaScript, но не переводит в ложное значение в контексте вышеупомянутых примеров (и, следовательно, включенного виджета).

0 голосов
/ 05 февраля 2013

вы можете использовать этот код, если вы хотите отключить его в соответствии с уровнем пользователя вставьте его в тег ввода формы надеюсь, что поможет

<?php 
if($_SESSION['user_level']=="level1")
{
?>  

disabled="disabled"  

<?php 
}
?>
0 голосов
/ 13 октября 2009

Атрибут disable может принимать одно значение: 'disabled'

Все экземпляры этого атрибута в HTML позволяют опускать кавычки, разделитель и имя (оставляя только значение без кавычек).

Поскольку в браузерах реализованы парсеры тегов и выполняются огромные объемы восстановления после ошибок, отключено = почти все будет рассматриваться как disabled.

(И я думаю, что Microsoft по какой-то причине внедрила отключенный на якорях, несмотря на то, что атрибут для этого элемента не существует).

0 голосов
/ 13 октября 2009

IE печально известен тем, что позволяет работать с HTML-кодом, заполненным ошибками; Вот почему многие люди ошибочно «обвиняют» его в проблемах, но на самом деле они просто делают что-то не так.

Я полагаю, что IE позволяет установить для diabled что-либо (кроме false), что означает, что это правда, потому что я думаю, что в прошлом люди писали disabled='disabled' и другие подобные вещи.

...