Javascript 为什么jqGrid字段隐藏在表单编辑中,即使;edithidden:true";是否包含在colModel中?

Javascript 为什么jqGrid字段隐藏在表单编辑中,即使;edithidden:true";是否包含在colModel中?,javascript,jquery,html,forms,jqgrid,Javascript,Jquery,Html,Forms,Jqgrid,使用jqGrid 4.3.1,我有一些列隐藏在网格视图中,但我希望它们在编辑表单中可见和可编辑 根据,模块的colModel的editrules选项的edithidden子选项启用了我想要的确切行为(强调我的行为): 此选项仅在表单编辑模块中有效。默认情况下,隐藏字段不可编辑如果该字段在网格中隐藏并且edithidden设置为true,则在调用add或edit方法时可以编辑该字段。 但是,当我实现以下代码时: {name:'AcmeCoValue',editrules: {edithidden:

使用jqGrid 4.3.1,我有一些列隐藏在网格视图中,但我希望它们在编辑表单中可见和可编辑

根据,模块的
colModel
editrules
选项的
edithidden
子选项启用了我想要的确切行为(强调我的行为):

此选项仅在表单编辑模块中有效。默认情况下,隐藏字段不可编辑如果该字段在网格中隐藏并且edithidden设置为true,则在调用add或edit方法时可以编辑该字段。

但是,当我实现以下代码时:

{name:'AcmeCoValue',editrules: {edithidden: true}, editable: true, show:'AcmeCovalue', hidden:true, fixed:'true', width: 65},
编辑表单的呈现HTML将此字段显示为:

<tr style="display:none" rowpos="7" class="FormData" id="tr_RedCoValue">
在我看来,
edithidden
参数无效

我发现使其可见的唯一方法是使用
formoptions:{rowpos:7}
选项将字段强制到可见行上,这样即使在
edithidden:false
时字段也可见

为什么edithidden似乎没有任何效果

这是我继承的遗留代码。是否有任何我应该检查的内容可能会覆盖
edithidden
的预期行为

我想我可以在Javascript中手动实现我想要的行为,但为了简单性和可维护性,我更喜欢用“jqGrid”的方式来实现,我还担心它为什么不起作用,以及与此相关的其他问题。

的使用

editrules: {edithidden: true}, editable: true, hidden: true
使列可编辑,但在“可编辑”下,表示列中的数据将仅发送到服务器。因为jqGrid将数据从表单发送到服务器,所以它使用隐藏行填充表单,但该行保持隐藏状态

您可以将
$(“#tr_RedCoValue”).show()包含在
beforeShowForm
回调(请参阅)中以解决问题

无论如何,我会严格建议您升级retro版本4.3.1,您可以使用该版本升级到4.13.6,您可以从CDN使用该版本(请参阅和)。版本4.3.1发布于5年前。那是Chrome16、Firefox8和IE9的时代。现在有人使用Chrome55、Firefox50.1、MicrosoftEdge 38和IE11。不难理解,jqGrid 4.3.1在现代web浏览器中以及在jQuery和jQuery UI的最新版本中无法正常工作

editrules: {edithidden: true}, editable: true, hidden: true
使列可编辑,但在“可编辑”下,表示列中的数据将仅发送到服务器。因为jqGrid将数据从表单发送到服务器,所以它使用隐藏行填充表单,但该行保持隐藏状态

您可以将
$(“#tr_RedCoValue”).show()包含在
beforeShowForm
回调(请参阅)中以解决问题


无论如何,我会严格建议您升级retro版本4.3.1,您可以使用该版本升级到4.13.6,您可以从CDN使用该版本(请参阅和)。版本4.3.1发布于5年前。那是Chrome16、Firefox8和IE9的时代。现在有人使用Chrome55、Firefox50.1、MicrosoftEdge 38和IE11。不难理解的是,jqGrid 4.3.1在现代web浏览器以及更新版本的jQuery和jQuery UI中无法正常工作。

感谢您的回答。从4.3.1升级到4.13.6会影响在表单视图中显示可编辑字段而不是在网格视图中显示可编辑字段的行为吗?正如您所描述的那样?@StockB:不客气!通过直接从CDN加载jqGrid CSS和JS文件,可以轻松测试免费的jqGrid 4.13.6(请参阅)。您只需要修改3行HTML代码。您将看到
editrules:{edithidden:true},edit:true,hidden:true
将显示并允许编辑表单中的数据。免费jqGrid支持许多其他选项,如可编辑为回调或可编辑的用法字符串值:“隐藏”、“禁用”或“只读”。我无法解释过去5年的特点。听起来升级可以让我省去这些头疼的事,还有更多。我会在一个测试环境中测试它的兼容性。简单地更新到4.13.6并没有神奇地解决这个问题,所以我怀疑可能有一些内部CSS或JS影响了这个行为。当我有时间的时候,我会尝试一下beforeShowForm
函数。@StockB:你最好准备演示,演示一下这个问题。看看它在Notes和Total列中使用
hidden:true,editrules:{edithidden:true},edit:true
。感谢您的回答。从4.3.1升级到4.13.6会影响在表单视图中显示可编辑字段而不是在网格视图中显示可编辑字段的行为吗?正如您所描述的那样?@StockB:不客气!通过直接从CDN加载jqGrid CSS和JS文件,可以轻松测试免费的jqGrid 4.13.6(请参阅)。您只需要修改3行HTML代码。您将看到
editrules:{edithidden:true},edit:true,hidden:true
将显示并允许编辑表单中的数据。免费jqGrid支持许多其他选项,如可编辑为回调或可编辑的用法字符串值:“隐藏”、“禁用”或“只读”。我无法解释过去5年的特点。听起来升级可以让我省去这些头疼的事,还有更多。我会在一个测试环境中测试它的兼容性。简单地更新到4.13.6并没有神奇地解决这个问题,所以我怀疑可能有一些内部CSS或JS影响了这个行为。当我有时间的时候,我会尝试一下beforeShowForm
函数。@StockB:你最好准备演示,演示一下这个问题。看看它在Notes和Total列中使用
hidden:true,editrules:{edithidden:true},edit:true