jquery – jqGrid:编辑时禁用表单域

前端之家收集整理的这篇文章主要介绍了jquery – jqGrid:编辑时禁用表单域前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在开发一种专为管理自动售货机而设计的Web应用程序。
我决定使用jQuery,jQuery UI和jqGrid这个项目,所以我可以轻松提供一个伟大和高度可定制的用户界面。
不幸的是, jqGrid documentation是非常过时的,并没有涵盖这个伟大的插件的所有功能(因为我真的喜欢它,即使文档是相当差)。

无论如何,足够的背景信息,我想。我们来看一下:
我使用内置于jqGrid的导航栏来添加,编辑和删除网格中的项目。
我有这样的工作就像一个魅力,除了一件事情:一些字段只能在添加新项目时启用(或可见),而不是在编辑模式下(它们应该被隐藏和/或禁用)。

Example:
The company I’m working for sells vending towers and
there are several types (different
sizes and stuff) of these towers. When
a new tower is added to a location and
entered into the system,the type
must be set. But the tower doesn’t
magically change over time,so this
field may not be edited later on.

有人知道这个行为是否可以通过改变一些初始化参数来实现?
也许这是一个没有文档的编辑选项(editoptions)或表单选项(formoptions)?
或者也许你有一个简单的解决方案呢?

我很乐意听到您的建议/解决方案!
谢谢=)

解决方法

您可以通过不同的方式实现您的要求。例如,在BeforeShowForm事件之前,您可以隐藏或显示
jQuery("#list").jqGrid({
    colModel: [
        { name: 'Name',width: 200,editable: true },//...

}).jqGrid('navGrid','#pager',{ edit: true,add: true,del: false},{ // edit option
              beforeShowForm: function(form) { $('#tr_Name',form).hide(); }
          },{ // add option
              beforeShowForm: function(form) { $('#tr_Name',form).show(); }
          });

其中“tr_Name”由“tr_”前缀和“Name”构成,即colModel中列的name属性

UPDATED:在the answeranother one中,再次显示如何在编辑初始化之前动态更改属性

UPDATED 2:Free jqGrid允许将可编辑定义为回调函数或“禁用”,“隐藏”或“只读”。参见the wiki article.它允许实现相同的要求更容易。

猜你在找的jQuery相关文章