Скрыть метку и поле ввода с помощью css или jquery

В этой скрипте у меня есть часть моей формы: http://jsfiddle.net/ZXSKH/55/

Я пытаюсь скрыть метку и 1 поле ввода по умолчанию, выбрав класс с помощью css и установив display:none. Это работает для выбора «входа», однако для меток это не работает, поскольку где-то еще я использую display:inline-block или block, который затем снова делает метки видимыми.

Вместо того, чтобы делать это в css, я должен скрыть метку и поле ввода с помощью jquery? Может ли кто-нибудь помочь мне с этим?


person logistef    schedule 03.11.2011    source источник


Ответы (6)


Как я видел в вашем коде и html, вы добавляете все элементы управления без какого-либо контейнера. используйте таблицу или div.

я предпочитаю использовать <div>. если вы хотите следовать тому же самому, перейдите по этим двум ссылкам в качестве ссылки, чтобы сбросить свой css для определенного элемента, а затем установите его visibility в css как скрытый как:

h1.hidden {visibility:hidden;}

Jquery: как проверить, имеет ли элемент определенные css-стиль

http://api.jquery.com/css/

поместите свои скрытые элементы управления в div, а затем вы можете использовать $('#divName1').hide() или $('#divName1').show() для реализации вашей функциональности.

вы можете генерировать динамический HTML-контент, а не указывать один набор элементов управления при щелчке отмеченного элемента.. используя insertAfter подобные методы jquery. вы можете получить более подробную информацию об этом по следующей ссылке:

http://api.jquery.com/?ns0=1&s=insertafter&go=

Выберите InsertAfter, чтобы детализировать примеры и упростить процесс.

person Niranjan Singh    schedule 03.11.2011
comment
Это лишь очень маленькая часть огромной формы +70 полей ввода с более чем 20 делениями. Не хотел усложнять. - person logistef; 03.11.2011
comment
вы можете следовать первому подходу, чтобы скрыть элементы управления внутри div, как я сказал сначала... это уменьшит усилия наполовину, а не ваш правильный... вам нужно выбрать один, кроме трех или четырех внутри него... - person Niranjan Singh; 03.11.2011

Вы облегчите себе жизнь, если поместите тег div вокруг полей, которые хотите скрыть, таким образом, ваш код jQuery может отображать/скрывать этот конкретный div (дайте ему идентификатор, чтобы настроить его). Таким образом, установка отображения на встроенный блок или блок для меток не будет иметь значения, потому что ваш div, содержащий метку, уже скрыт.

person Amos M. Carpenter    schedule 03.11.2011
comment
@logistef Рад помочь :-) Будьте либеральны в применении div к вашему HTML для группировки разделов, которые связаны друг с другом семантически - в конце концов, для этого они и нужны! - person Amos M. Carpenter; 03.11.2011

Вы можете использовать jquery, чтобы скрыть метку и поле ввода. Это можно сделать очень легко с помощью jquery

Eg.

$(id).css('display','none');

или Вы также можете использовать метод jquery hide

Eg.

$(id).hide();
person Dipen    schedule 03.11.2011

джаваскрипт однако! попробуй.

    <script type="text/javascript">
    <!--
    function ShowOrHide(id) {
       var e = document.getElementById(id);
       e.style.display = 'block';
    }
function Hide(id) {
       var e = document.getElementById(id);

          e.style.display = 'none';

    }
    //-->
    </script>
person Kris    schedule 03.11.2011

Вам не нужно использовать javascript здесь, чтобы решить то, что кажется только проблемой отображения. Лучше найти решение с помощью css, чем использовать неправильный инструмент для решения проблемы. Почему вам нужно настроить отображение метки на блокировку в другом месте? Можно ли сделать это более конкретным для конкретной метки, которую нужно показать, оставив остальные скрытыми?

person Brighty    schedule 03.11.2011

вы можете переопределить display: inline-block и т. д. с помощью !important, поэтому создайте класс

.hidden{display: none !important;}

применить к вашей этикетке или что-то еще

<label id="my-label" class="hidden"></label>

и если вы хотите удалить его (сделать видимым), используйте jquery

$("#my-label").removeClass("hidden");
person Modika    schedule 03.11.2011
comment
извините, но я не согласен с этим подходом для чего-то столь тривиального, как этот пример. Избегайте использования меток !important, кроме как в крайнем случае, так как это мешает естественному каскадному стилю. Кроме того, в jQuery есть функции для отображения и скрытия вещей, не нужно вручную добавлять/удалять классы. - person Amos M. Carpenter; 04.11.2011