Привет, у меня есть форма рельсов, состоящая из электронной почты, имени и т. Д.; и имя поля с вопросами поступает из файла yml. Для 3 наборов вопросов пользователь должен заполнить 3 ответа соответственно.
форма:
<% @list = YAML::load(File.open("#{Rails.root}/config/questions.yml"))%> <% ans_iter= 0 %> <% @list.keys.each do |set| %> <% ans_iter += 1 %> <%= select_tag 'questions[]',options_for_select(@list[set]) %> <%= text_field_tag "answers[]", nil, :class => 'required', :id => "ans_#{ans_iter}"%> <% end %>
Вначале нет итерационных атрибутов (ans_iter в приведенной выше форме), в то время, когда я проверяю элемент, я использовал для получения идентификаторов каждого текстового поля ответа в качестве answer_ и имени класса в качестве ответов []. Но позже после добавления итераторов я получаю идентификаторы как ans_1, ans_2, ans_3 соответственно.
Когда я пишу сообщения валидатора как:
function validatePage() {
validator = $('#new_user').validate({ rules: { user_first_name:{ required:true}, user_email: { required:true}, ans_1: {required:true}, ans_2: {required:true}, ans_3: {required:true} }, messages: { user_first_name:{ required: "Please enter First Name"}, user_email: { required: "Please enter Email"}, ans_1: {required: "Please fill the answer"}, ans_2: {required: "Please fill the answer"}, ans_3: {required: "Please fill the answer"} } }); }
Для вышеуказанных js работает только проверка ответа в 1-м ответе, остальные 2 ответчика tex-бокса не работают. Я думаю, что мой валидатор работает с именами, а не с идентификаторами. Есть ли способ запустить мои проверки с помощью идентификаторов?
Почему бы не сделать
...
'answers[]': {required:true}
...
'answers[]': {required: "Please fill the answer"}