我在设置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"
}
});
答案 0 :(得分:13)
我不知道如何编写规则,因为你从未说过你想要的规则。只使用您提供的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中添加class="required"
,因为此规则已使用您的jQuery .validate()
方法指定。
<input type='text' name='resume[zip_code]' />
工作演示:
请参阅所有方法和规则的文档:
http://docs.jquery.com/Plugins/Validation
如果您要将该字段验证为必需的美国邮政编码,只需使用zipcodeUS
规则,但您必须先包含“其他方法”文件found here。
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"
}
}