Validation 剑道用户界面:使用剑道验证程序显示服务器端错误

Validation 剑道用户界面:使用剑道验证程序显示服务器端错误,validation,kendo-ui,server-side-validation,kendo-validator,Validation,Kendo Ui,Server Side Validation,Kendo Validator,我有一个web表单,它使用进行客户端验证。一旦客户端验证成功,表单值将被发送到进行额外验证的web服务,并保存数据或发送回由表单字段键入的错误消息的JSON对象。这些字段名与验证器元素上的属性的数据匹配。有没有办法使用剑道验证程序显示这些错误 我意识到您可以设置自定义规则来对每个字段进行服务器端验证。这是一次验证所有字段并显示多个错误。您可以附加到响应事件和调用函数,当服务器返回某些错误时,该函数将显示验证错误 下面是可以实现此功能的javascript部分: validationMessage

我有一个web表单,它使用进行客户端验证。一旦客户端验证成功,表单值将被发送到进行额外验证的web服务,并保存数据或发送回由表单字段键入的错误消息的
JSON
对象。这些字段名与验证器元素上的属性的
数据匹配。有没有办法使用剑道验证程序显示这些错误


我意识到您可以设置自定义规则来对每个字段进行服务器端验证。这是一次验证所有字段并显示多个错误。

您可以附加到响应事件和调用函数,当服务器返回某些错误时,该函数将显示验证错误

下面是可以实现此功能的javascript部分:

validationMessageTemplateForReplace = kendo.template(
    '<div class="k-widget k-tooltip k-tooltip-validation k-invalid-msg field-validation-error" style="margin: 0.5em; display: block; " data-for="#=field#" data-valmsg-for="#=field#" id="#=field#_validationMessage">' +
    '<span class="k-icon k-warning"> </span>#=message#<div class="k-callout k-callout-n"></div></div>');

function onResponseEnd(response) {
    if (response.errors) onError(response.errors, $('#myForm'));
}

function onError(errors, element) {
    for (var error in errors) {
        addValidationMessage(element, error, errors[error].errors);
    }
}

function addValidationMessage(container, name, errors) {
    //add the validation message to the form
    var found = container.find("[data-for=" + name + "],[data-val-msg-for=" + name + "],[data-valmsg-for=" + name + "]");
    if (found.length > 0) {
        found.replaceWith(bs.validationMessageTemplateForReplace({ field: name, message: errors[0] }));
        return true;
    }

    return false;
}
validationMessageTemplateForReplace=kendo.template(
'' +
“#=消息”;
函数onResponseEnd(响应){
if(response.errors)onError(response.errors,$(“#myForm”);
}
函数onError(错误,元素){
for(错误中的var错误){
addValidationMessage(元素,错误,错误[error]。错误);
}
}
函数addValidationMessage(容器、名称、错误){
//将验证消息添加到表单中
var found=container.find(“[data for=“+name+”],[data val msg for=“+name+”],[data valmsg for=“+name+”]”);
如果(找到的长度>0){
找到.replaceWith(bs.validationMessageTemplateForReplace({field:name,message:errors[0]}));
返回true;
}
返回false;
}

也许示例项目也会对您有所帮助。它与网格弹出式编辑关联,但显示了您想要实现的机制。

您可以附加到响应事件和调用函数,当服务器返回某些错误时,该函数将显示验证错误

下面是可以实现此功能的javascript部分:

validationMessageTemplateForReplace = kendo.template(
    '<div class="k-widget k-tooltip k-tooltip-validation k-invalid-msg field-validation-error" style="margin: 0.5em; display: block; " data-for="#=field#" data-valmsg-for="#=field#" id="#=field#_validationMessage">' +
    '<span class="k-icon k-warning"> </span>#=message#<div class="k-callout k-callout-n"></div></div>');

function onResponseEnd(response) {
    if (response.errors) onError(response.errors, $('#myForm'));
}

function onError(errors, element) {
    for (var error in errors) {
        addValidationMessage(element, error, errors[error].errors);
    }
}

function addValidationMessage(container, name, errors) {
    //add the validation message to the form
    var found = container.find("[data-for=" + name + "],[data-val-msg-for=" + name + "],[data-valmsg-for=" + name + "]");
    if (found.length > 0) {
        found.replaceWith(bs.validationMessageTemplateForReplace({ field: name, message: errors[0] }));
        return true;
    }

    return false;
}
validationMessageTemplateForReplace=kendo.template(
'' +
“#=消息”;
函数onResponseEnd(响应){
if(response.errors)onError(response.errors,$(“#myForm”);
}
函数onError(错误,元素){
for(错误中的var错误){
addValidationMessage(元素,错误,错误[error]。错误);
}
}
函数addValidationMessage(容器、名称、错误){
//将验证消息添加到表单中
var found=container.find(“[data for=“+name+”],[data val msg for=“+name+”],[data valmsg for=“+name+”]”);
如果(找到的长度>0){
找到.replaceWith(bs.validationMessageTemplateForReplace({field:name,message:errors[0]}));
返回true;
}
返回false;
}

也许示例项目也会对您有所帮助。它与网格弹出式编辑相关联,但显示了您想要实现的机制。

您可以使用本主题中描述的
AddModelError
方法显示多个错误

您可以使用本主题中描述的
AddModelError
方法显示多个错误