剣道グリッドに表示されたレコードのリストがあり、そこで新しいレコードをインラインで作成できます。要件は、すべてのレコードが一意の名前を持つことです。
新しいレコードを追加するとき、レコードのリストを反復処理し、追加する前に新しいレコード名が一意かどうかを確認するこの機能があります。kendo.ui.validator の拡張機能として、カスタム ルールを追加します。関数:
//...
uniquenamevalidation: function (input, params) {
var errorCount = 0;
//check for the rule attribute
if (input.filter("[data-val-uniquenamevalidation]").length && input.val()) {
var dataSource = $("#grid").data("kendoGrid").dataSource;
var data = dataSource.data();
//iterating through all grid elements' Names, and comparing to input
for (var i = 1; i < data.length; i++) {
if (input.val() == data[i].Name) {
errorCount++; //if there are any matches, increase error count
}
}
}
console.log(errorCount == 0);
return errorCount == 0;//returns TRUE if there are no matches, therefore input is unique
}
入力が無効な場合、関数はfalseを返し、検証は失敗するはずです。期待どおりの適切なエラー メッセージで失敗します http://snag.gy/d5TZR.jpg
問題: 入力が有効な場合、関数はtrueを返し、検証に合格する必要があります。この不可解なエラーが表示され、続行できません。 http://snag.gy/syxds.jpg