2014-02-06 2 views
0

У меня есть форма с разделом div, который скрыт (с использованием свойства CSS: display: none), если кто-то не выбирает определенный элемент из списка, и в этом случае я использую jQuery для его отображения , Это отлично работает, если у кого-то не отключен Javascript в браузере, и в этом случае div остается скрытым независимо от их выбора.Показать скрытый div для пользователей, не относящихся к javascript

Я попытался решить эту проблему, используя (тип: текст/html) и теги следующим образом:

<noscript> <div id="extra" style="display:block"></noscript> 
<script type="text/html"> 
<div id="extra" style="display:none"> 
</script> 

... 

</div> 

Это не работает, когда JS включен, как это кажется, что браузер (проверено на Chrome 32 и Safari 6) просто игнорирует скрипт с типом html.

Есть ли лучший (или правильный) способ сделать это?

+0

Вы должны поместить JavaScript в тег скрипта, вы не можете просто отбросить HTML там. – j08691

+0

@ j08691: Если вы поместите на него тип, вы можете поместить всевозможные вещи в тег скрипта, отличный от JavaScript. Но я не вижу никакой причины поместить HTML в один ... –

ответ

4

Используйте JavaScript, чтобы скрыть div в первую очередь. Тогда вы знаете, что это будет видно для пользователей, у которых отключен JavaScript.

<div id="extra"></div> 
<script> 
document.getElementById("extra").style.display = "none"; 
</script> 
+1

Спасибо. Это так очевидно, когда вам ответят. Красноречивое решение. – Josh

+0

@Josh: Спасибо. Я предпочитаю [CodeMonk's] (http://stackoverflow.com/a/21605486/157247). :-) –

1

вот видео-учебник о том, как это можно сделать с помощью JQuery: http://screenr.com/ya7

Код:

<body class="noscript"> 
<script> 
$('body').removeClass('noscript'); 
</script> 
</body> 

А потом просто скрыть соответствующие элементы под body.noscript соответственно

Реферирование от here

+0

Мне нравится это ** много ** лучше, чем моя оф-манжета выше. Затем CSS применяется только в зависимости от того, имеет ли тело стиль. И я * знал эту модель (Moderizr и т. Д.), Но до сих пор не думал об этом, когда отвечал выше. –

+0

Очень чистый и умный. Спасибо. – Josh

Смежные вопросы