一個文本框驗證紅寶石這是目前的設置,我有:單選按鈕,並具有on Rails的
<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。
有什麼建議嗎?我很感激,感謝 德里克