Я испытываю затруднения после рассмотрения документов jQuery. Я просто пытаюсь возвратить true в моих своих методах jQuery в зависимости от проверки определенного переключателя и если это выбрано или нет
Я попробовал несколько вещей, но не смог разобраться в этом:
<input type="radio" runat="server" name="testGroup" id="test1" /><label for="<%=test1.ClientID %>" style="cursor:hand" runat="server">Test1</label>
<input type="radio" runat="server" name="testGroup" id="test2" /><label for="<%=test2.ClientID %>" style="cursor:hand" runat="server">Test2</label>
<input type="radio" runat="server" name="testGroup" id="test3" /> <label for="<%=test3.ClientID %>" style="cursor:hand">Test3</label>
и в моем методе у меня есть это:
return $("input[@name='test2']:checked");
Я надеваю неопределенное $("input[@name='test2']:checked");
ОБНОВЛЕННЫЙ:
пример:
<input type="radio" runat="server" name="radioGroup" id="payPalRadioButton" value="paypalSelected" />
это возвращается 'неопределенный' все еще:
$("input[@name=radioGroup]:checked").attr('payPalRadioButton');
Если я пробую это, я получаю 'ложь', даже если я устанавливаю переключатель:
$('input:radio[name=radioGroup]:checked').val() == 'paypalSelected'
Ваш селектор не выбирает поле ввода, и если бы он это сделал, он вернул бы объект jQuery. Попробуйте следующее:
$('#test2').is(':checked');
Я думаю, вы используете неправильный подход. Вы должны установить атрибут value
ваших входных элементов. Посмотрите документацию для .val () , чтобы увидеть примеры установки и возврата .val () входных элементов.
т.е.
<input type="radio" runat="server" name="testGroup" value="test2" />
return $('input:radio[name=testGroup]:checked').val() == 'test2';
1. Вам больше не нужен префикс @
для имен атрибутов:
http://api.jquery.com/category/selectors/attribute-selectors/ :
Примечание. В jQuery 1.3 [@attr] style селекторы были удалены (это были {{ 1}} ранее не рекомендуется в jQuery 1.2). Просто удалите символ '@' из селекторов , чтобы они снова заработали .
2. Ваш селектор запрашивает переключатели по имени
, но этот атрибут не определен в вашей структуре HTML.
Вы должны удалить '@' перед 'name'; он больше не нужен (для текущих версий jQuery).
Вы хотите вернуть все отмеченные элементы с именем 'test2', но у вас нет элементов с таким именем, вы используете id из 'test2'.
Если вы собираетесь использовать идентификаторы, просто попробуйте:
return $('#test2').attr('checked');
Зачем возиться со всеми навороченными селекторами? Если вы правильно используете эти атрибуты id = "", тогда 'test2' должен быть единственным тегом с этим идентификатором на странице, тогда логическое свойство .checked сообщит вам, отмечен он или нет:
if ($('test2').checked) {
....
}
также не устанавливайте никаких значений для этих переключателей, поэтому независимо от того, какую кнопку вы выберете, вы просто получите пустой "testGroup =", отправленный на сервер.