3

我在设置 jQuery 验证的规则和消息时遇到问题。

我正在尝试从 resume[zip_code] 中获取值,但我不知道如何在 JQuery 中编写它。我试过了

rules: {
  resume[zip_code]: required: true
}

但不起作用。

这是我需要从中获取值的地方。

<div class='control-group'><label class='control-label'>Zip Code: </label>
  <div class='controls'>
    <input class="required" type='text' name='resume[zip_code]'>
  </div>
</div>

应用代码

post '/create_resume' do
  session[:errors].clear
    @user = User.first(:email_address => session['user'])
    @resume = @user.resumes.new(params[:resume])
    @resume.save

  params[:education].each_key do |school|
    @school = @resume.educations.new(params[:education][school]
    @school.save
  end

  params[:job].each_key do |job|
    @job = @resume.jobs.new(params[:job][job])
    @job.save
  end

  params[:otherskill].each_key do |other|
    @otherskill = @resume.otherskills.new(params[:otherskill][other])
    @otherskill.save
  end

  if session[:errors].empty? === false
    erb :resume_form
  else
    session[:resume_output].clear
    erb :resume_output 
  end
end

jQuery

我知道布局是什么,但只是不知道如何检索值

$(#myForm).validate({
  rules: {
    something: key => value
  },
  messages: {
    something: "value"
  }
});
4

1 回答 1

14

我不知道如何编写您的规则,因为您从未说过您想要哪些规则。仅使用您提供的 HTML,这就是您设置规则和消息的方式。

为了演示用法,我任意required设置最小长度为 5 个数字的字段。

相应地编辑并添加您自己的规则。

$('#myForm').validate({
  rules: {
    "resume[zip_code]": {
         required: true,
         minlength: 5,
         digits: true
     }
  },
  messages: {
    "resume[zip_code]": {
         required: "this field is required",
         minlength: "this field must contain at least {0} characters",
         digits: "this field can only contain numbers"
     }
  }
});

您也不需要放入HTML 中,因为您的 jQuery方法class="required"已经指定了此规则。.validate()

<input type='text' name='resume[zip_code]' />

工作演示:

http://jsfiddle.net/vL7ps/

有关所有方法和规则,请参阅文档:

http://docs.jquery.com/Plugins/Validation


如果您想将该字段验证为必需的美国邮政编码,只需使用该zipcodeUS规则,但您必须首先包含此处找到的“其他方法”文件。

http://ajax.aspnetcdn.com/ajax/jquery.validate/1.10.0/additional-methods.js

jQuery:

rules: {
  "resume[zip_code]": {
    required: true,
    zipcodeUS: true
  }
},
messages: {
  "resume[zip_code]": {
    required: "this field is required",
    zipcodeUS: "this field must contain valid US zip code"
  }
}

演示:http: //jsfiddle.net/k6eLf/

于 2013-01-06T19:32:09.617 回答