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

2024-02-26

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

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

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


The demo http://www.ok-soft-gmbh.com/jqGrid/SimpleLocalGridWithInlineEditing.htm显示如何解决该问题:

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

editrules:{required:true,number:true}

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

对于实现,我覆盖(链接)方法的默认实现$.jgrid.checkValues and $.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);
};
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

当 jqgrid 中验证失败时突出显示错误单元格或输入 的相关文章

随机推荐

  • jqgrid:如何发送和接收行数据保持编辑模式

    jqGrid 有员工姓名和员工 ID 列 If employee name已更改 应调用服务器验证方法来验证名称 当前行列应根据此方法返回的数据进行更新 If employee id已更改 应调用服务器验证方法来验证 id 当前行列应根据此
  • 网络配置和机器配置

    Web 配置和机器配置有什么区别 小心 配置文件有一个层次结构 applicationHost config是顶级 IIS 配置文件 Next is machine config 这是顶级的 特定于服务器的配置文件 接下来是服务器级别web
  • Spark在本地运行但在YARN中运行时找不到文件

    我一直在尝试提交一个简单的 python 脚本来使用 YARN 在集群中运行它 当我在本地执行作业时 没有问题 一切正常 但当我在集群中运行它时 它失败了 我使用以下命令执行了提交 Spark submit masteryarn deplo
  • 动画 gif 在使用 MKOverlayRenderer 的 MKMapView 叠加中不起作用

    我正在尝试在叠加层中显示动画 gifMKMapView 覆盖层是使用以下命令创建的MKOverlayRenderer 为了在 iOS 7 中制作 gif 动画 我使用UIImage animatedGIF已发布类别here https gi
  • 从 RNetLogo 加载带有扩展的 Netlogo 模型

    我正在尝试使用 RNetLogo 在无头模式下加载 Netlogo 模型 该模型使用 rnd 扩展 该扩展通过以下方式添加到模型中extensions rnd 如果我尝试加载模型NLLoad model path 我收到此错误 NLLoad
  • 软件和与外部设备串行通信的波特率限制

    我使用 USB 端口作为虚拟 COM 端口运行 以使用 MATLAB 或 Visual Basic 6 实现与外部设备的串行通信 我面临波特率限制 具体取决于我用于与设备通信的软件 MATLAB 2018a 没有问题 因为它可以设置高波特率
  • 为什么Android有时需要调用super?

    有时 当我重写方法时 第一次调用时会出现异常 如下所示 05 31 21 32 04 266 E AndroidRuntime 28471 android support v4 app SuperNotCalledException Fra
  • 在 Android 上让系统进入睡眠状态

    我正在为 Android 1 6 及更高版本开发一个应用程序 其中包含将手机切换到睡眠状态的功能 我试图找到一种方法来做到这一点 我发现去睡觉方法中的电源管理器类 但不幸的是该方法的使用需要android permission DEVICE
  • 什么是尾递归?

    在开始学习 lisp 时 我遇到了这个术语尾递归 它到底是什么意思 考虑一个将前 N 个自然数相加的简单函数 例如 sum 5 0 1 2 3 4 5 15 下面是一个使用递归的简单 JavaScript 实现 function recsu
  • 为什么注销后 user.is_authenticated 断言为 true

    我正在尝试编写一个用于在 Django 中注销用户的测试 这是代码 urls py from django conf urls import url from django contrib import admin from account
  • SwiftUI:从上向下动画扩展视图

    我一直在尝试在 SwiftUI 中制作自定义可扩展 可折叠视图 下面是一个视图的代码 该视图在 折叠 时显示 Tap Me 并且在点击时展开以显示每个item in items 以及一个允许用户添加项目的按钮 当我在列表中显示三个这样的视图
  • 使用文本编辑器将多行转换为单行

    我在文本编辑器中的一行中包含以下单词 about above across after afterwards again against all almost alone 有人可以帮助我使用文本编辑器将上述内容转换为一行吗 about ab
  • SDK-tools 更新版本后 Android 应用程序崩溃(NoClassDefFound,工具版本 22)

    我刚刚将我的android SDK工具更新到新发布的版本 工具版本22 平台工具版本17 java lang NoClassDefFoundError classpath 文件已修改 更新中添加了一行
  • XML 模式来验证 XML 模式?

    有谁知道是否可以使用另一个 XML 模式验证 XML 模式 如果是这样 是否有参考实现 我想使用 JAXB 解析架构文档 当然 大多数时候 您只需将浏览器指向用作 XML 文档命名空间的 URL 这也适用于 XML 模式 http www
  • 这段Java代码如何编译?

    一位同事遇到了一些看起来像这样的代码 但无法理解它如何编译 class FooClass public static void bar String arg System out println arg arg http www googl
  • Twitter Bootstrap:容器中的 div 高度为 100%

    使用 twitter bootstrap 2 我有一个带有导航栏的简单页面 并且在container我想添加一个 100 高度的 div 到屏幕底部 我的 css fu 生锈了 我无法解决这个问题 简单的 HTML div class na
  • Firebase Cloud Functions 上“尝试向 FCM 服务器进行身份验证时发生错误”

    我正在尝试通过创建 Firestore 文档 消息 时触发的 Firebase 云函数中的 FCM 向主题发送消息 订阅主题 也使用函数完成 并触发发送函数工作正常 但实际发送失败 并显示 Error An error occurred w
  • 如何修复错误::初始化字符串的格式不符合从索引 0 开始的规范::

    我在 godaddy 共享主机上上传了我的网站 我可以访问这个数据库来自我的管理工作室 我无法访问这个数据库来自我的网站 我收到以下错误 初始化字符串的格式不符合从索引 0 开始的规范 我的连接字符串位于网络配置它看起来像这样
  • 打开没有地址栏和标题的javascript弹出窗口,高度和宽度根据屏幕分辨率以百分比设置

    我想使用 javascript 打开没有标题和地址栏的弹出窗口 并且还想根据屏幕分辨率以百分比形式设置其高度和宽度 我怎样才能实现这一点 我做了这段代码 function popitup url LeftPosition screen wi
  • 当 jqgrid 中验证失败时突出显示错误单元格或输入

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