2015-10-06 5 views
0

У меня есть пара входов типа радио, как так:Как установить логическое значение в jQuery на основе ввода типа радио?

<label>YES</label> 
<input type="radio" name="uscitizen" id="uscitizenyes" value="YES" required /> 
<label>NO</label> 
<input type="radio" name="uscitizen" id="uscitizenno" value="NO" /> 

Чтобы установить значение элемента списка в Sharepoint 2010 («ptli_USCitizen» в данном случае), это лучший способ сделать это:

oListItem.set_item('ptli_USCitizen', ($('uscitizenyes').val() == 'YES')); 

... или есть более «приемлемый узорный» способ?

ответ

1

Это будет работать.

oListItem.set_item('ptli_USCitizen', ($('[name="uscitizen"]:checked').val() == 'YES')); 

Но лучший способ обработки логического значения в пользовательском интерфейсе - это флажок, а не переключатели.

Us Citizen: <input type='checkbox' id='uscitizen' name='uscitizen' /> 

Затем используйте:

oListItem.set_item('ptli_USCitizen', ($('#uscitizen').is(':checked')); 
+0

Спасибо; Я не контролирую, как выглядит пользовательский интерфейс. –

1

Попробуйте это, чтобы получить результат bool без явной необходимости проверки YES.

$('#radio_button').is(':checked') 
+1

это не будет работать с HTML, показанной в этом вопросе. –

+0

Это было больше похоже на общий ответ на чистое извлечение bool val для переключателя. – M156

3

Можно использовать :checked селектор

$('[name=uscitizenyes]:checked').val() 

подразумевает, что вы хотите получить значение для вашего списка, в отличие от булевой показано на вопрос

oListItem.set_item('ptli_USCitizen',$('[name=uscitizenyes]:checked').val()) 

Для булево может использовать идентификатор для YES и is(':checked')

oListItem.set_item('ptli_USCitizen',$('#uscitizenyes').is(':checked')) 
+0

Я предполагаю, что это (ссылка на идентификатор элемента вместо имени) будет работать для переключателей, входящих в группу, и, таким образом, имеет одно и то же имя: $ ('# visitor: checked'). Val()); –

+1

Зависит от того, что вы хотите ... booolean или value ... Идентификатор должен быть уникальным, поэтому я использовал имя для получения значения и добавил другое с идентификатором для boolean – charlietfl

+1

теперь понял, что я полностью пропустил 'boolean' в теме – charlietfl