我正在尝试在用户填写传统表单域(如用户名,电话等)的表单中使用jqGrid。表单包含用于行项目的jqGrid,用户可以在其中添加/编辑/删除行,并在完成时,提交整个表格。我有网格工作,因为我希望它出现,我只是无法获得作为包含表单的一部分提交的网格的内容。
这是一个伪代码示例:
<form id="foo">
<input id="username" type="text">Your name<br>
Enter your choices in the grid below:
<!-- imagine jqGrid here -->
<input type="submit" value="Submit the form"></form>
我搜索过,谷歌搜索,阅读文档,阅读维基等,但只是看不到如何将jqGrid行和列作为表单字段传递。任何指导都将不胜感激。
答案 0 :(得分:2)
执行此操作的最佳方法可能是使用隐藏的表单字段:
<input type="hidden" name="gridData" value="" />
然后,您将在表单提交之前使用列数据填充该字段。您可以通过在修改网格数据时更新字段,或者在按下按钮提交表单时调用JavaScript函数(并从该函数中调用表单submit
)来执行此操作。
要将网格数据写入隐藏字段,您可以在网格的每一行上连续调用getRowData
,并将每行的数据附加到数组中。或许还有更好的方法。例如,有一个新的data
选项可能有用吗?无论如何,一旦获得网格数据,就可以使用json2.js将数据序列化为JSON格式:
JSON.stringify( myGridData );
然后在服务器上,您可以从此隐藏字段解码JSON,并相应地处理它。