我想在jqgrid
中显示添加表单之前检查变量myVar
是否有值。以下是我在添加选项中的代码,用于检查myVar
是否具有值。如果myVar
为null,那么我不希望添加表单。
}).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
没有值,则我不想显示添加表单。
提前致谢。
答案 0 :(得分: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!");
}
}
请参阅演示here。