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のみを使用して、これがルールとメッセージを設定する方法です。

使用法を示すために、最小長が5の数字のフィールドを任意に作成しています。required

それに応じて独自のルールを編集および追加します。

$('#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"
     }
  }
});

また、このルールはjQueryメソッドclass="required"ですでに指定されているため、HTML内に配置する必要はありません。.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 に答える