gpt4 book ai didi

jqgrid - 在 jqgrid 中验证失败时突出显示错误单元格或输入

转载 作者:行者123 更新时间:2023-12-01 23:19:18 25 4
gpt4 key购买 nike

我正在使用 jqgrid 内联编辑,并使用编辑规则在网格中进行验证。我想添加类以突出显示验证失败的输入的错误(例如:ui-state-error)。我可以使用这个设置类来突出显示错误

jQuery('#'+grid_id).jqGrid('setCell',row_id,errfields[a],'','ui-state-error',{color: 'blue'});

但是当内置验证失败时,它在 jqgrid 中不起作用。我如何突出显示验证错误触发的单元格/输入。

最佳答案

The demo显示如何解决问题:

enter image description here

在演示中,“金额”、“税收”和“总计”列将使用以下验证规则进行验证:

editrules:{required:true,number:true}

对于任何验证错误,将添加验证失败的第一个输入字段附加类“ui-state-error”。它是标准的 jQuery UI CSS 类。此外,我将焦点设置到输入字段。

对于实现,我覆盖(链)方法 $.jgrid.checkValues$.jgrid.hideModal 的默认实现。下面是相应的代码:

var grid = $("#list");
grid.jqGrid({
// define all jqGrid options
});

var originalCheckValues = $.jgrid.checkValues,
originalHideModal = $.jgrid.hideModal,
iColWithError = 0;
$.jgrid.checkValues = function(val, valref,g, customobject, nam) {
var tr,td,
ret = originalCheckValues.call(this,val, valref,g, customobject, nam);
if (!ret[0]) {
tr = g.rows.namedItem(editingRowId);
if (tr) {
$(tr).children('td').children('input.editable[type="text"]').removeClass("ui-state-error");
iColWithError = valref; // save to set later the focus
//error_td_input_selector = 'tr#'+editingRowId+' > td:nth-child('+(valref+1)+') > input.editable[type="text"]:first';
td = tr.cells[valref];
if (td) {
$(td).find('input.editable[type="text"]').addClass("ui-state-error");
}
}
}
return ret;
};
$.jgrid.hideModal = function (selector,o) {
var input, oldOnClose, td,
tr = grid[0].rows.namedItem(editingRowId);
if (tr) {
td = tr.cells[iColWithError];
if (td) {
input = $(td).children('input.editable[type="text"]:first');
if (input.length > 0) {
oldOnClose = o.onClose;
o.onClose = function(s) {
if ($.isFunction(oldOnClose)) {
oldOnClose.call(s);
}
setTimeout(function(){
input.focus();
},100);
};
}
}
}
originalHideModal.call(this,selector,o);
};

关于jqgrid - 在 jqgrid 中验证失败时突出显示错误单元格或输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5988767/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com