Мне нужно проверить checked
свойство флажка и выполнить действие на основе проверенного свойства с помощью jQuery.
Например, если флажок возраста установлен, то мне нужно показать текстовое поле для ввода возраста, иначе скрыть текстовое поле.
Но следующий код возвращается false
по умолчанию:
if ($('#isAgeSelected').attr('checked'))
{
$("#txtAge").show();
}
else
{
$("#txtAge").hide();
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="checkbox" id="isAgeSelected"/>
<div id="txtAge" style="display:none">
Age is selected
</div>
Как мне успешно запросить checked
свойство?
javascript
jquery
html
checkbox
Прасад
источник
источник
$('#isAgeSelected').checked
$('#isAgeSelected')[0].checked
Ответы:
checked
Свойство Флажок DOM элемента даст вамchecked
состояние элемента.Учитывая ваш существующий код, вы можете сделать это:
Тем не менее, есть гораздо более красивый способ сделать это, используя
toggle
:источник
is(':checked')
бизнес.this.checked
это не jQuery, как того требует ОП. Кроме того, это работает только тогда, когда пользователь нажимает на флажок, который не является частью вопроса. Вопрос, опять же,How to check whether a checkbox is checked in jQuery?
в любой момент времени с или без установки флажка и в jQuery.Используйте функцию jQuery's () :
источник
$("#txtAge").toggle($("#isAgeSelected").is(':checked'))
.visible
«свойства» ( свойство ? Вы имеете в виду метод ?), потому что элемент без HTML имеет видимое свойство. У них естьdisplay
свойство стиля, и это немного сложнее, чем вкл / выкл.Использование jQuery> 1.6
Используя новый метод свойства:
источник
.prop
метод - это спроектированный способ проверки реквизита. ... ... Если вы собираетесь использовать этот.is(":checked")
подход, это нормально, но это не спроектированный способ сделать это с помощью jquery. правильно?.is(":checked")
и.prop("checked")
оба являются действительными способами получить тот же результат в jQuery,.is
будут работать во всех версиях,.prop
требуется 1.6+.attr('checked')
в jQuery 1.11.3, вы получите неопределенный, где, если вы используете.prop('checked')
, вы получите true / false. Я не понимаю, почему они изменили его так, чтобы старые браузеры не могли поддерживать более поздние версии jQuery, которые были введены.prop()
и, следовательно, необходимы.attr()
. Единственным преимуществом является то, что старые браузеры (т.е. IE 8) не могут ничего поддерживать> jQuery 1.9. Надеюсь, они не сделали этого (make.attr('checked')
= undefined) в этой версии! К счастью, всегда естьthis.checked
.JQuery 1.6+
JQuery 1,5 и ниже
Любая версия jQuery
Весь кредит идет на Сиань .
источник
this.checked
используется прямой Javascript. Но мне нравится этот кросс-jQuery-версия ответа!Я использую это, и это работает абсолютно нормально:
Примечание. Если флажок установлен, он вернет значение true, в противном случае значение не определено, поэтому лучше проверить значение «ИСТИНА».
источник
.attr()
! Если бы они просто оставили достаточно хорошо в одиночестве ... Нашел здесь другой ответ, в котором сказано, что вы можете просто использоватьthis.checked
это решение для кросс-jQuery, поскольку это просто Javascript.Использование:
источник
Начиная с jQuery 1.6, поведение
jQuery.attr()
изменилось, и пользователям предлагается не использовать его для получения проверенного состояния элемента. Вместо этого вы должны использоватьjQuery.prop()
:Две другие возможности:
источник
Это сработало для меня:
Где
isAgeSelected
находится идентификатор элемента управления.Кроме того, ответ @ karim79 отлично работает. Я не уверен, что я пропустил в то время, когда я проверял это.
Обратите внимание, это ответ использует Microsoft Ajax, а не JQuery
источник
== true
Если вы используете обновленную версию jquery, вы должны использовать
.prop
метод для решения вашей проблемы:$('#isAgeSelected').prop('checked')
вернется,true
если проверено иfalse
если не отмечено. Я подтвердил это, и я столкнулся с этой проблемой ранее.$('#isAgeSelected').attr('checked')
и$('#isAgeSelected').is('checked')
возвращается,undefined
что не является достойным ответом на ситуацию. Так что, как указано ниже.Надеюсь, это поможет :) Спасибо.
источник
$('#isAgeSelected').checked
?Использование
Click
обработчика событий для свойства checkbox ненадежно, так какchecked
свойство может измениться во время выполнения самого обработчика событий!В идеале, вы хотите поместить свой код в
change
обработчик событий, такой как он запускается каждый раз, когда изменяется значение флажка (независимо от того, как это делается).источник
.on()
метод является предпочтительным методом для прикрепления обработчиков событий к документу.Использование:
Это может помочь, если вы хотите, чтобы требуемое действие выполнялось только тогда, когда вы устанавливаете флажок, а не в тот момент, когда вы снимаете флажок.
источник
Я решил опубликовать ответ о том, как сделать то же самое без jQuery. Просто потому, что я бунтарь.
Сначала вы получаете оба элемента по их идентификатору. Затем вы назначаете флажки
onchange
событию функцию, которая проверяет, был ли установлен флажок, и соответствующим образом устанавливаетhidden
свойство текстового поля age. В этом примере используется троичный оператор.Вот скрипка для вас, чтобы проверить это.
добавление
Если кросс-браузерная совместимость является проблемой, я предлагаю установить для
display
свойства CSS значение none и inline .Медленнее, но кросс-браузер совместим.
источник
.hidden
не очень кросс-браузер, хотя мне нравится это решение :)style
. Это прискорбно, так как.hidden
производительность намного лучше .Я считаю, что вы могли бы сделать это:
источник
Я столкнулся с точно такой же проблемой. У меня есть флажок ASP.NET
В коде jQuery я использовал следующий селектор, чтобы проверить, был ли установлен флажок или нет, и, похоже, он работает как шарм.
Я уверен, что вы также можете использовать идентификатор вместо CssClass,
Я надеюсь, это поможет вам.
источник
Есть много способов проверить, установлен ли флажок или нет:
Способ проверить с помощью jQuery
Проверьте пример или также документ:
http://api.jquery.com/attr/
http://api.jquery.com/prop/
источник
Этот код поможет вам
источник
Это работает для меня:
источник
Это другой способ сделать то же самое:
источник
Использовать этот:
Длина больше нуля, если флажок установлен.
источник
Мой способ сделать это:
источник
Это возвращает,
true
если вход проверен, иfalse
если это не так.источник
.attr('checked')
что и то, что оно не всегда возвращает правильное состояние. Согласно Салман A «s ответ (и , возможно , других»), это более безопасный вариант, чтобы использовать.prop('checked')
вместо. Кроме того, также можно объявитьundefined
какvar undefined = 'checked';
..prop('checked')
действительно кажется лучшим ответом сейчас. Это не было так надежно в то время, когда это было написано. Я не понимаю и не думаю, что это хорошая идея переопределить неопределенное.typeof (x) !== "undefined"
источник
Ты можешь использовать:
Они оба должны работать.
источник
1) Если ваша HTML-разметка:
attr используется:
Если используется проп:
2) Если ваша HTML-разметка:
attr используется:
Подставка используется:
источник
Этот пример для кнопки.
Попробуйте следующее:
источник
Главный ответ не сделал это для меня. Это сделал, хотя:
В основном, когда щелкает элемент # li_13, он проверяет, проверен ли элемент # accept (который является флажком) с помощью
.attr('checked')
функции. Если это так, то fadeIn элемента #saveForm, а если нет, то fadeOut элемента saveForm.источник
Я использую это:
источник
Хотя вы предложили решение JavaScript для вашей задачи (отображающее
textbox
когдаcheckbox
естьchecked
), то эта проблема может быть решена только с помощью CSS . При таком подходе ваша форма работает для пользователей, которые отключили JavaScript.Предполагая, что у вас есть следующий HTML:
Вы можете использовать следующий CSS для достижения желаемой функциональности:
Для других сценариев вы можете подумать о соответствующих селекторах CSS.
Вот скрипка, чтобы продемонстрировать этот подход .
источник
Переключить: 0/1 или еще
источник
Я думаю, что это будет простой
источник