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