Javascript - Как да проверите дали има отметка в jQuery

Трябва да проверя свойството за отметка на поле за отметка и да изпълня действие въз основа на свойството за отметка с помощта на jQuery.

Например, ако квадратчето за възраст е отметнато, тогава трябва да покажа текстовото поле, за да въведа възрастта, в противен случай да скрия текстовото поле.

Но следният код връща false по подразбиране:

Как да заявите успешно проверен имот?

Това проработи за мен:

Където isAgeSelected е ИД на контролата.

Освен това отговорът на @karim79 работи добре. Не съм сигурен какво съм пропуснал по времето, когато го тествах.

Забележка. Този отговор използва Microsoft Ajax, а не jQuery

Как да направя заявка за проверено свойство?

Свойството checked на квадратчето за отметка DOM елемент ще ви даде отметнато състояние на елемента.

Предвид съществуващия ви код можете да направите това:

Има обаче по-красив начин да направите това, като използвате toggle:

Използвайте функцията jQuery is():

Използване на jQuery > 1.6

Използване на метода на новите свойства:

jQuery 1.6 +

jQuery 1.5 и по-стари версии

Всяка версия на jQuery

Всички кредити се отнасят за Сиан.

Използвам това и работи абсолютно добре:

Забележка. Ако квадратчето за отметка е отметнато, то ще върне true, в противен случай недефинирано, така че по-добре проверете за TRUE.

От jQuery 1.6 поведението на jQuery.attr() се промени и потребителите се съветват да не го използват за извличане на състоянието, маркирано от елемент. Вместо това трябва да използвате jQuery.prop() :

Две други възможности:

Ако използвате актуализирана версия на jquery, трябва да използвате метода .prop, за да решите проблема си:

$('#isAgeSelected').prop('checked') ще върне true, ако е отметнато, и false, ако не е отметнато. Потвърдих това и се сблъсках с този проблем по-рано. $('#isAgeSelected').attr('checked') и $('#isAgeSelected').is('checked') връщат undefined, което не е приличен отговор на ситуацията. Направете както е показано по-долу.

Надявам се това да помогне :) - Благодаря ви.

Използването на манипулатор на събитие Click за свойството на полето за отметка е ненадеждно, тъй като свойството отметнато може да се промени по време на изпълнението на самия манипулатор на събитие!

В идеалния случай искате да поставите кода си в манипулатор на събитие за промяна, като например такъв, който се задейства всеки път, когато стойността на квадратче за отметка се промени (независимо как се прави).

Първо получавате и двата елемента по техния id. След това присвоявате събитието onchange на квадратчето за отметка на функция, която проверява дали квадратчето е отметнато и съответно задава скритото свойство на текстовото поле за възрастта. Този пример използва троичен оператор.

Ето ви една цигулка, за да я проверите.

Добавяне

Ако съвместимостта между различни браузъри е проблем, предлагам да зададете свойството display CSS на none и inline.

По-бавен, но съвместим с различни браузъри.