2

私は MVC4 アプリケーションで Kendo Editor を使用しており、モデルベースの検証を達成しました

 $("form").data("validator").settings.ignore = ":hidden:not(#Text)";
 $.validator.setDefaults({ ignore: [] });

Kendo は、TextArea を中心にエディターをビルドし、非表示フィールドとしてマークします。現在、検証は機能していますが、検証が失敗した場合、.input-validation-error クラスは追加されません。誰でも私がそうする方法を提案できますか?

4

1 に答える 1

0

ポイントは、input-validation-error クラスが元の非表示フィールドに適用されることです...エディターではありません。検証失敗イベントをインターセプトする必要があり、このクラスをエディターに手動で追加する必要があります。

検証イベントをインターセプトする方法は 2 つあります。より簡単な方法は、setDefaults メソッドに渡すオプションでカスタムの showErrors 関数を指定することです。検証プラグインのドキュメントでは、これを行う方法について説明しています。

もう 1 つの方法は、バリデータ オブジェクト プロトタイプの要素とフォーム メソッドを再定義することです。難しいことではありませんが、バリデーション プラグインについての深い知識が必要です。

最初のアプローチを使用して、showErrors 関数にブレークポイントを設定することをお勧めします。これにより、渡される引数の形式に慣れることができます。カスタマイズを追加した後、デフォルトの showErrors 関数を呼び出すことを忘れないでください。

検証エラーもクリアする必要があることを忘れないでください。プラグインがカスタム エラーをクリアしない場合 (おそらく...入力フィールドにアタッチされていないため)、エレメント メソッドとフォーム メソッドをオーバーライドする必要があります。上記のメソッドはいずれの場合でも呼び出されるため、クリアコードをそこに入れることができます....

私のアドバイスは、最初にエラーを表示することに集中し、検証プラグインの動作に慣れたら、必要に応じてカスタム エラーをクリアすることに集中することです (プラグインによって自動的にクリアされる可能性があります... ではありません)。プラグインがエラーをどのようにクリアするかを確認してください)

于 2013-04-14T14:01:28.560 に答える