В данный момент у меня есть настройка:
<input id="demographics_questionary_gender_male" name="demographics_questionary[gender]" type="radio" value="Male"> Male
<input id="demographics_questionary_gender_gender" name="demographics_questionary[gender]" type="radio" value="Female"> Female
<input id="demographics_questionary_gender_male" name="demographics_questionary[gender]" type="radio" value="Other"> Other
<input id="other_gender_value" name="other_gender[value]" size="30" type="text">
Это даст три переключателя (Мужской, Женский, Другой).Существует также текстовое поле, если выбран переключатель «Другое».
Мой вопрос касается того, как проверить, заполнено ли текстовое поле, если выбран переключатель «Другое».
В настоящее время, что я делаю, в контроллере, я проверяю, выбрана ли другая радиокнопка, и если это так, я изменю сохраненное значение на значение, установленное в текстовом поле «прочее».Тем не менее, я не знаю, как проверить текстовое поле.Я знаю, как проверить, проверяется ли переключатель, проверяя, установлено ли значение в модели, но не знаю, как убедиться, что пользователь ввел данные в текстовое поле «Прочее».
Вот фрагмент кода из контроллера:
if @demographics_questionary.gender == 'Other'
@other_gender = params[:other_gender]
if @other_gender[:value].nil?
@demographics_questionary.gender = @other_gender[:value]
else
@demographics_questionary.gender = 'Not Set'
end
end
Как вы можете видеть, в настоящее время я просто установил для него значение «Не установлено», если выбрана радиокнопка «Другое», итекстовое поле «Другое» пусто.Однако этот код выполняется, когда выбрана кнопка для обработки данных.В идеале, я бы хотел, чтобы проверка выполнялась на странице просмотра, где это не позволило бы пользователю двигаться вперед до тех пор, пока текстовое поле не будет заполнено, если выбран переключатель «Другое».Таким образом, к тому времени, когда он попадет даже в метод контроллера, эта проверка не потребуется.
Но я снова открыт для любых других предложенных методов.
Я думаю, что это можетсделать JavaScript или JQuery, но я не уверен, как.
Ах да, поэтому весь этот код в представлении находится в поле формы:
<% form_for(@demographics_questionary) do |f| %>
<%= f.error_messages :header_message => "Please do not skip any of the questions." %>
/* Code for radio buttons */
<%= f.submit 'Next' %>
<%end%>
Обратите внимание, что код переключателя находится в form_for.После того, как кнопка отправки запущена, она выполнит метод в контроллере.Если бы вы использовали JavaScript / jQuery, как бы вы добавили функцию к кнопке отправки?
Это текущая страница:
http://otoplusvn.com/TherapistSurvey/demographics_questionaries/new для вопроса 2 по полу.
Есть предложения?Я ценю это, спасибо Дерек