3

client_side_validationsgemを使用してお問い合わせフォームを検証しています。無効な場合、gemはフィールドの横にエラーメッセージを表示します。また、ユーザーが有効な情報を入力したときにフィールドの横に成功メッセージを表示するカスタムコールバック(Github wikiを参照)を実装しました。

// Define a callback to run whenever an attribute passes validations
clientSideValidations.callbacks.element.pass = function($element, callback) {
  console.log("Element passed", $element);
  // Allow clientSideValidations to do it's thing.
  callback();
  // Add a success message to give the user an ego lift.
  $element.closest('p').addClass('pass');
  $message = $('<span class="message">Great job!</span>');
  $element.after($message);
};

ただし、検証がまったく行われていないフィールドがあると、問題が発生します。

class Contact < ActiveRecord::Base

  attr_accessible :name, :phone_number

  validates :name, presence: true
  # I don't need to validate the phone number in any way.
end

この場合、ユーザーが電話番号フィールドをタブで移動すると、passコールバックは実行されません。代わりにコールバックを使用してこれを実行しようとしましたafterが、どちらも実行されていないようです。

フォームのすべてのフィールドでコールバックを強制的に実行する方法はありますか?

4

1 に答える 1

1

これは宝石の振る舞いではありません。不可能です。

于 2012-08-08T14:57:42.527 に答える