1

私は一日中カスタム検証と格闘してきました。助けを求める時が来たと思いました。

私が作成したのは、イベントにユーザーを追加するときに、facebook に似た選択ユーザー インターフェイスです。どのユーザーも選択されていない場合にエラーを返す関数を作成しようとしています。私が直面している問題は、親 div をフォーム要素のように扱う必要があることですが、その方法に関する情報を見つけることができます。

JSfiddle を作成しているときに、別の考えが浮かびました。ユーザー ID を配列に格納します。たぶん、検証で空の配列をチェックできますか? それを行う方法、またはどの方法が理想的かわかりません..

ここで遊ぶためのフィドルがあります: http://jsfiddle.net/7neCU/1/

これが私がこれまでに試したことです。

    $.validator.addMethod('require-one-div', function (element) {
        if ($('#trainees').children('.each_user').hasClass('selected'))
            return true;
        }, "Please select at least 1 trainee");

そしてルール

    rules: {
            trainees:{
                'require-one-div':true
            },
        }

また、親 div#traineesに名前と ID「研修生」と必要なクラスを指定しました。

提案やアイデアをありがとう。

4

2 に答える 2

1

jQuery Validate は、 のルールをサポートしていませんsection。フォームプラグインです。inputしたがって、、、textareaを使用している必要がありますselect

コメントで提案されたように、おそらくいくつかのものが必要です。

  1. 非表示のチェックボックス グループまたはラジオ グループを作成する
  2. プロファイルのクリックを各チェックボックスまたはラジオにフックします
  3. その上で validate を呼び出しますが、必ず を指定してignore: ''ください。そうしないと、validate は非表示のフォーム フィールドを無視します。
于 2012-12-14T19:06:23.867 に答える
0

うーん....この検証プラグインがどのように機能するかは100%わかりません。しかし、メソッドはこれを「検証」ステップとして簡単に行うことができます。

$.validator.addMethod('require-one-div', function (element) {
    return $('#trainees .each_user.selected').length;
}, "Please select at least 1 trainee");

基本的に、.selected.each_user div が 0 の場合、検証は 0 (偽) を返します。少なくとも 1 つある場合、.length >= 1 は true であり、検証に合格したことを意味します。検証が反対の場合は、単に ! を付けてください。長さチェックの前に!$('#trainees .each_user.selected').length

于 2012-12-14T17:26:01.690 に答える