2

Happy.js を使用してクライアント側でフォームを検証しようとしています。

基本的な検証は問題なく機能しますが、もう少し複雑であることを検証する必要がある、もう少し複雑な部分があります。基本的に、はい/いいえのラジオ ボックスがあり、はいの場合はさらにいくつかの入力タグが表示されます。これらのタグは、ラジオ ボタンが [はい] の場合にのみ必要です。それ以外の場合は必要ありません。

これを行う方法についてアドバイスはありますか?私はそれらを不要として設定し、入力が空でラジオボタンがはいに設定されている場合に false を返す幸せな関数を作成することを考えていました。

このようなもの:

"#input":{
    required: false,
    message: "required",
    test: happy.needed(parameter)
}

ありがとう。

4

1 に答える 1

3

ドキュメントが言うように、ハッピーが常にテスト機能を実行するように渡す'sometimes'ことができます。required

テスト関数については、 jQuery/Zepto の値を返すだけisです。

"#input":{
    required: "sometimes",
    message: "Custom message",
    test: function(input){ 
      return $(input).val() !== '' && $('#radioButton').is(':checked');
    }
}

happy.email何が起こっているのかわからない場合、彼らが示す例は混乱を招く可能性があります。JavaScript の関数はファースト クラスです。つまり、関数を変数のように渡すことができます。

したがって、次のように書くとします。

var isRadioButtonChecked = function(input) {
  return $(input).val() !== '' && $('#radioButton').is(':checked');
}

次に、検証ルールで次のように記述できます。

"#input":{
    required: "sometimes",
    message: "Custom message",
    test: isRadioButtonChecked
}

これはもう少し簡潔になります。

于 2013-04-25T23:04:04.243 に答える