【发布时间】:2014-03-24 02:43:17
【问题描述】:
您好,我有包含电子邮件、姓名等的 rails 表单;带有问题的字段名称来自 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),当时我做Inspect元素时,我习惯将每个答案文本框的ID作为answers_和类名作为答案[]。但后来在添加迭代器后,我得到的 id 分别为 ans_1、ans_2、ans_3。
当我将验证器消息编写为:
函数 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 个答案文本框无效。我认为我的验证器正在使用名称而不是 id。有没有办法使用 id 运行我的验证?
【问题讨论】:
标签: javascript jquery ruby-on-rails ruby validation