-2

jQuery Validation Plugin を使用しています。jQueryフォームの検証からエラーの種類を取得する方法はありますか? 例えば、

$('mform').validate({
rules: {
    email: {
        required: true,
        maxlength: 40
    }
},
messages: {
    email: {
        required: "This is a required field.",
        maxlength: "Please enter less than 40 chars"
    }
},
errorPlacement: function(error, element) {
    error.appendTo(element.parent());
}
});

「必要な」エラーから生成されたエラー メッセージのみを、「element.parent()」に追加するのではなく、html ページのどこかに「div」内に配置したいと考えています。「required」エラーや「maxlength」エラーなどのエラー タイプを取得できれば、これを行うコードを記述できます。

jQuery Validate エラー タイプを取得できますか?

上記の質問では、追加するパラメーターについて言及していませんでした。そこで再質問。

どんな助けでも大歓迎です!ありがとう!

4

2 に答える 2

1

編集: 短い答え:

あなたが要求していることは、このプラグインでは実行できません。 (これはまた、デフォルトでは実行できない何かを、おそらくまったく実行してはならないという非常にまれな機会でもあります。)

1) このプラグインを出発点として使用して、独自のカスタム プラグインを作成します。これを自分で真剣に試みてから、行き詰まったときに SO に戻って、より詳細な新しい質問を投稿してください。

2) 必要なことを既に実行しているプラ​​グインを見つけます。ただし、要求されたオプションは通常人々が望むものではないため、存在するとは思えません。一貫した統一されたユーザー エクスペリエンスとは、エラー メッセージをトリガーしたルールに関係なく、すべてのエラー メッセージが同じように処理されることを意味します。


元の答えは次のとおりです...


errorPlacementこのようなコールバック関数を使用できると思います...

errorPlacement: function (error, element) {
    if (error.text().indexOf("required") !== -1) {
        error.insertAfter(element);
    } else {
        error.insertBefore(element);
    }
}

デモ: http://jsfiddle.net/VVaKV/

ただし、このソリューションは最初のエラー メッセージの最初の配置しか処理しないため、いくつかの欠点があります。labelプラグインは作成後にのみメッセージを表示/非表示にするため、後続のメッセージはすべて同じ初期位置になりますlabel。(各フィールドに 1 種類のメッセージしかない状況ではうまく機能します。)

あなたが望むものがこのプラグインに組み込まれていないので 、他のコールバック関数がうまく機能するとは思いません。(おそらく、ほとんどの人は、すべてのエラーが一貫して均一な外観を持っている場合、ユーザーの混乱が少ないと信じているためです.IMO.)

私はこのプラグインに関する数百のSOの質問に答えましたが、あなたの質問は私が遭遇した最初のもので、あるタイプのエラーメッセージを別のタイプとは異なる方法で処理できるようにすることを要求しています. ほとんどの人は、より一貫したユーザー エクスペリエンスを望んでいます。

于 2013-03-27T01:18:02.550 に答える
0

これを使用してみてください:

errorPlacement: function(error, element) {
    var message = $(error).text(); 

    // here message is your error text message
}
于 2014-08-12T08:18:40.950 に答える