1

我想在显示jqgrid该变量中的添加表单之前检查是否myVar有值。以下是我在添加选项中检查是否myVar有价值的代码。如果myVar为空,那么我不想打开添加表单。

}).navGrid('#mypager',{cloneToTop:true, edit:false,add:true,del:false,view:false,search: false,refresh:true},
    {},
    {
    beforeShowForm : function (formid)
    {
        if(myVar.length==0)
        {
            alert("Value can't be blank!");
            return[false,"Value can't be blank!"];
        }
    },
    recreateForm: true,
    reloadAfterSubmit:true,
    closeOnEscape:true, 
    modal:true,
    jqModal: false,
    savekey: [true,13],
    width:550,
    mtype:'POST',
    url: 'MyServlet',
    editData:{action:'ListInsert',myVar: function () {return myVar;}},
    afterSubmit: function (response)
    {
        var myInfo = '<div class="ui-state-highlight ui-corner-all">'+'<span class="ui-icon ui-icon-info" '+'style="float: left; margin-right:.3em;"></span>'+ response.responseText +'</div>';
        $infoTr = $("#TblGrid_" + $.jgrid.jqID(this.id) + ">tbody>tr.tinfo"),$infoTd = $infoTr.children("td.topinfo"); 
        $infoTd.html(myInfo);
        $infoTr.show();
        return [true, "", ""];                  
    },
    errorTextFormat: function (response)
    {
        return '<span class="ui-icon ui-icon-alert" ' +'style="float:left; margin-right:.3em;"></span>' +response.responseText;
    }
},

上面的代码显示了警报,但仍然显示了添加表单。
myVar包含来自其他网格的 id,如果myVar没有值,那么我不想显示添加表单。

提前致谢。

4

1 回答 1

1

不能通过从beforeShowForm. 您可以做的是在打开后立即关闭表单。例如,您可以使用afterShowForm。代码可能类似于

afterShowForm: function () {
    var idSelector = $.jgrid.jqID(this.p.id);
    if(myVar.length==0) {
        $.jgrid.hideModal("#editmod" + idSelector, {gbox: "#gbox_" + idSelector});
        alert("Value can't be blank!");
    }
}

在此处查看演示。

于 2013-10-28T11:57:36.893 回答