2017-10-23 1 views
1

私は検証が必要なドロップダウンを持っていますが、期待通りに動作していません。再現するRails 5 - jQueryがform.selectで検証するのは、サブミット後のみです

# app/views/forms/_form.html.erb 

<%= form.select :environment, [ 'Production', 'Staging', 'Test' ], 
{ prompt: 'Select an Environment' }, { required: true } %> 


# app/assets/javascripts/forms.js 
$('form#new_form').validate({ 
    validClass: "valid", 
    errorClass: "invalid", 
    rules: { 
     'form[environment]': { required: true }, 
    } 
}); 

ステップ:

  1. をクリックし、ドロップダウン
  2. 上のオプションを選択します。問題が発生した場所です - - validクラスは、ドロップダウン
  3. に追加されます
  4. プロダクション、ステージング、またはテスト環境を選択し、バックドロップダウンリストにをクリックして、プロンプトを選択します
  5. invalidクラスはではなく、がドロップダウンリストに追加されます。

上記の手順は、フォームを送信してエラーが発生したときにのみ、が正常に動作します。その後、私は繰り返したときには、私は(プロダクション、ステージング、またはテスト)オプションを選択したときにvalidクラスが追加されます、1-5のステップ、と私はプロンプトを選択するとinvalidクラスは、環境

答えて

1

よるを選択し追加されますドキュメント(https://jqueryvalidation.org/documentation/)には、期待どおりに動作します。

フィールドは検証が怠け者である、無効としてマークされる前に: が初めてフォームを送信する前に、ユーザーが迷惑なメッセージを取得せず フィールドをタブすることができます - 彼らが持っ前 を盗聴得ることはありませんすぐに、ユーザが必要な値を入力した として、エラーメッセージが

+0

をいただき、ありがとうございます削除されます。フィールドはそれは熱心に検証され、無効とマークされると、実際に正しい値

を入力するチャンスcl養成!私はナッツに行くと思った!私は、ユーザーの観点から、非常に多くのメッセージで「迷惑をかける」ことを本当に望んでいないことを理解していますが、この動作を「怠け者」にすることは可能ですか? –

+0

@JeffreyWenこれを試すhttps://stackoverflow.com/a/28059070/2681735 – kolas

関連する問題