Javascript 剑道网格验证不适用于自定义网格行为

Javascript 剑道网格验证不适用于自定义网格行为,javascript,jquery,validation,kendo-ui,kendo-grid,Javascript,Jquery,Validation,Kendo Ui,Kendo Grid,我无法在自定义网格中进行验证。网格用于更改编辑单元格下方的单元格值。两个单元格都有新值后,单元格焦点将设置为下一个单元格(如果按enter/tab,则设置为右侧的单元格,或者鼠标单击下一个单元格)。为了让所有这些都能工作,我必须编写自定义的refresh()和current()函数,并在网格中使用自定义的edit()和save()事件。我还在单元格中使用自定义编辑器,它删除微调器并选择单元格的值 我制作了一个简化的工作示例,它表明验证不起作用。在本例中,您可以编辑第一行中的单元格,当您按ente

我无法在自定义网格中进行验证。网格用于更改编辑单元格下方的单元格值。两个单元格都有新值后,单元格焦点将设置为下一个单元格(如果按enter/tab,则设置为右侧的单元格,或者鼠标单击下一个单元格)。为了让所有这些都能工作,我必须编写自定义的
refresh()
current()
函数,并在网格中使用自定义的
edit()
save()
事件。我还在单元格中使用自定义编辑器,它删除微调器并选择单元格的值

我制作了一个简化的工作示例,它表明验证不起作用。在本例中,您可以编辑第一行中的单元格,当您按enter或tab键时,下面的单元格将获得与已编辑单元格相同的值。自定义函数和事件是鼠标和键盘聚焦工作所必需的,所以我必须使用它们

如果删除单元格的值,然后按enter键,则不会显示验证错误。我想这与我使用的所有自定义函数和事件有关。有没有办法让验证工作顺利进行


我让它工作了,问题出在自定义列编辑器功能中。Telerik的伙计们为我提供了解决方案:

由于缺少验证属性,因此未触发验证。您可能知道,使用自定义列编辑器时,开发人员负责将适当的验证属性添加到此编辑器中的正确元素

function editnumberwhithoutspinners(容器、选项){
//添加name属性以将验证占位符与验证的元素连接起来
$(“”)//添加验证属性
.appendTo(容器)
.Kendonumeric文本框({
纺纱工:错,
最低:0
});
//由于NumericTextBox的呈现方式,需要自定义验证消息占位符
$('')。附加到(容器);
}
function editNumberWithoutSpinners(container, options) {

    // add name attribute to connect the validation placeholder with the validated element
    $('<input name="' + options.field + '" data-text-field="' + options.field + '" ' +
        'data-value-field="' + options.field + '" ' +
        'data-bind="value:' + options.field + '" ' +
        'data-format="' + options.format + '" required="required"/>') // add the validation attributes
        .appendTo(container)
        .kendoNumericTextBox({
            spinners: false,
            min: 0
        });

    // custom validation message placeholder is required due to the way NumericTextBox is rendered
    $('<span class="k-invalid-msg" data-for="' + options.field + '"></span>').appendTo(container);
}