0

我有一个这样的脚本

<script type="text/javascript">
var gridimgpath = 'themes/basic/images'; 
//alert($("jqContextMenu"));
jQuery("#VWWMENU").jqGrid(
    {
     url:'loadstatic.php?q=2&t=CORE_VW_WMENUS',
     datatype: "json", 
     mtype: "POST", 
     colNames:['Id', 'Module'],
     colModel:
     [
     {
     name:'id',
     index:'id',
     width:7,
     editable:true,
     edittype:'text',
     editrules:{required:true},
     editoptions:{maxlength:10, size:10},
     formoptions:{rowpos:2, elmprefix:' '},
     key:true
     },
     {
     name:'modulename',
     index:'modulename',
     width:15,
     editable:true,
     edittype:'select',
     editrules:{required:true},
     editoptions:{maxlength:10, size:0, dataUrl:'combopub.php?t=MODULE'},
     formoptions:{rowpos:1, elmprefix:' '}
     }
...
</script>

“modulename”表单是一个组合框,它从名为“module”的表中获取数据。在这个“模块”表中有一个名为“fromid”和“toid”的列。现在我怎样才能让这两个值成为“id”表单的范围?所以当我输入一个值来形成“id”然后我提交它时,它会显示一条关于我输入的 id 超出范围的消息。我也不知道如何使发生此错误时出现的消息。所以你们能帮我解决这个问题吗?

对于这种 javascript 或 jquery 之类的东西,我仍然是一个完全的菜鸟,所以你的帮助将不胜感激。

我希望这将有助于更清楚地说明我的意思。这是表模块:table_module。从左到右(不包括红线覆盖的列)idmodule、namemodule、idchildfrom、idchildto。屏幕上显示的模块名称实际上是 idmodule 和 namemodule 的串联

现在,如果您从 modulename 组合框中选择 2,例如combobox_1 ,那么您应该获得 201-400 的范围 id。这意味着如果您在 id 中输入值 300 并按下提交按钮,则会出现一条错误消息,告诉您您的输入更多超出范围。

我希望这个解释可以帮助你更多地理解我真正想做的事情

4

1 回答 1

2

如果我理解正确,您可以使用根据我的建议实现的相对较新的功能(从 jqGrid 4.4.2 开始存在) 。它允许使用postData定义为函数:

{
    name: "modulename",
    width: 15,
    editable: true,
    edittype: "select",
    editrules: {required: true},
    editoptions: {
        maxlength: 10,
        size: 0,
        dataUrl: "combopub.php",
        postData: function (rowid) {
            return { id: rowid, t: "MODULE" };
        }
    },
    formoptions: {rowpos: 1, elmprefix: " "}
}

有关更多详细信息,请参阅答案拉取请求

于 2013-04-29T06:10:33.907 回答