注:私の理解が正しい限り、代替タイトルは次のようになります。
「クライアント側のJavaScriptを介してjQueryバリデーターオブジェクトにアクセスするには、Kendoグリッドが行のインライン編集に何を使用しますか?」
環境
データソースエラーを使用してサーバー側の検証エラーをキャッチ(処理)し、通知に表示することができます。同様の通知ですべてのクライアント側の検証エラーを表示したいと思います。
以下に示すコード禁止のように、これは標準のjQuery検証のようです。それでも、既存のグリッドにハンドラーをアタッチする方法がわかりません。
質問
クライアント側の検証エラーは、データソースエラーイベントをトリガーしていないようです。
クライアント側の検証エラーを繰り返してカスタムの方法で表示するハンドラーを作成するにはどうすればよいですか?
追加情報
サーバー側エラーの処理は、データソースエラーイベントを処理することで機能します。ただし、これは、「唯一の」クライアント側検証エラーが発生した場合でも発生しません。
クライアント側の検証エラーの原因となるフィールドは次のとおりです。
検証属性を含むそのフィールドの対応するhtmlは次のとおりです。
<input class="k-textbox form-control"
data-val="true"
data-val-length="First Name should be maximum 30 characters"
data-val-length-max="30"
data-val-regex="Enter at least 3 characters. Use only alphabets and ,.'- characters"
data-val-regex-pattern="[a-zA-ZàáâäãåąčćęèéêëėįìíîïłńòóôöõøùúûüųūÿýżźñçčšžÀÁÂÄÃÅĄĆČĖĘÈÉÊËÌÍÎÏĮŁŃÒÓÔÖÕØÙÚÛÜŲŪŸÝŻŹÑßÇŒÆČŠŽ∂ð ,.'-]{3,}"
data-val-required="The First Name field is required."
id="FirstName"
name="FirstName"
data-bind="value:FirstName">
以下の解決策を終了しました。主な問題である、剣道グリッドの内部インラインフォームの内部jqueryバリデーターオブジェクトにアクセスする方法が解決されました。さらなる改良が可能です。
剣道グリッドの「編集」イベントに付属する以下の機能。グリッドの「save」または「saveChanges」イベントを使用しようとしましたが、残念ながら、インライン形式でjQuery検証エラーが発生した場合、どちらのイベントも発生しませんでした。
そのため、バリデーターの検証イベント自体を使用しており、編集イベントが発生したときに検証ハンドラーをバインドします。(インラインフォーム用にオンザフライで作成され、再利用されていないバリデーターのようです。)
剣道グリッドの「編集」イベントに付属する次の関数:
function (e) {
var validatable = e.sender.editable.validatable;
validatable.bind("validate", function (e) {
var errors = e.sender.errors();
for (var i = 0; i < errors.length; i++) {
// do whatever you want with errors[i]
}
});
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加