Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 在jqGrid编辑表单中,如何在同一行上有多个字段?_Jquery_Jqgrid - Fatal编程技术网

Jquery 在jqGrid编辑表单中,如何在同一行上有多个字段?

Jquery 在jqGrid编辑表单中,如何在同一行上有多个字段?,jquery,jqgrid,Jquery,Jqgrid,通常在jqGrid编辑表单中,每个字段都位于单独的行上,标签在左侧,字段输入在右侧。但是,在我们的一些网格中,我们有一些字段,用户希望这些字段在编辑表单中彼此相邻,因为它们在逻辑上是相关的,例如,季度和年度在一行中,左侧有一个标签 我认为唯一可行的方法是使用带有edittype:'custom'的自定义格式化程序,在这种情况下,在分别加载/保存时,必须拆分/合并两个或多个字段 有点求助于这种可怕而乏味的方法,有没有更好/更简单的方法呢?您可以使用或修改表单 您应该考虑到,表单数据将被放置在具有i

通常在jqGrid编辑表单中,每个字段都位于单独的行上,标签在左侧,字段输入在右侧。但是,在我们的一些网格中,我们有一些字段,用户希望这些字段在编辑表单中彼此相邻,因为它们在逻辑上是相关的,例如,季度和年度在一行中,左侧有一个标签

我认为唯一可行的方法是使用带有
edittype:'custom'
的自定义格式化程序,在这种情况下,在分别加载/保存时,必须拆分/合并两个或多个字段

有点求助于这种可怕而乏味的方法,有没有更好/更简单的方法呢?

您可以使用或修改表单

您应该考虑到,表单数据将被放置在具有
id
中,就像
“TblGrid\uu”+grid\uid
一样。表中的行具有类似于
tr_myCol
的ID,其中名称
'myCol'
colModel
中相应网格列的
name
属性的值。因此,您可以使用新的
元素附加
元素以及您需要的附加信息。当然,您可能应该增加窗体属性的值

可能对你有帮助

已更新:如果检查jqGrid的代码,您将在grid.formedit.js中找到以下代码片段:

$("#"+frmtb+" > tbody > tr > td > .FormElement").each(function(i) {
    ...
    switch ($(this).get(0).type) {
        ...
        case "text":
            postdata[this.name] = $(this).val();
    ...
}
因此,重要的是,input、select和其他输入元素必须位于表单同一表的and
单元格中。例如,
“invdate”
列的输入元素将具有(简化形式)


因此,它已经包含了您需要的所有字段。您可以根据需要对输入字段重新排序。您可以添加额外的
元素或将其删除。例如,您可以将表格缩减为一个
和一个
单元格,并将所有输入字段和标签放在单元格内。在我看来,编辑表单将不会有任何问题


因此,您可以在编辑/添加表单中进行大量修改。

感谢您的回答,我已经出于其他原因使用了beforeShowForm和afterShowForm,但我没有想到使用它来操纵元素的位置等等。问题是,所有元素都映射到我的colModel,因此如果每个tr都有一个您建议的id,并且jqGrid希望在单独的行中找到这些元素,那么如果我在同一行上移动了另一个输入字段,它不会抱怨吗?@AsGoodAsItGets:我用其他信息更新了我的答案。感谢更新,我会尝试一下,让你知道它是否有效!它工作得很好,虽然在我的情况下它有点复杂。再次感谢@AsGoodAsItGets:不客气!事实总是如此,随着演示的进行,现实变得更加复杂。我只想向您展示如何实现需求的方法。
 <input class="FormElement" name="invdate" type="text">