我是jquery和Jqgrid的新手。我在jqgrid中未选中复选框时显示警告消息时出现问题,即我已声明multiselect:true。
function initJqGridSearchSubProject(table,pager,msg,loadSelID,caption,chkMrk ){
$(table).empty();
$(table).GridUnload();
var mygrid =jQuery(table).jqGrid({
datatype: "local",
data:msg,
width: 1240,
scrollOffset:0,
height: 250,
colNames:['ID','PID','Project Folder Name','Sub Project Name','Responsible','Status','Last Updated On'],
colModel:[
{name:'id',index:'id',hidden:true, width:5, sorttype:"int", editable: false,resizable:false},
{name:'pid',hidden:true, width:5, sorttype:"int", editable: false,resizable:false},
{name:'projectFolderName', width:250, editable: true,formatter:'tsLinks'},
{name:'subProjectName', width:250, editable: true,formatter:'subProjectLinks'},
{name:'responsible', width:200, editable:false,resizable:false},
{name:'status', width:100,editable: true,stype:'select',edittype:"select",resizable:false,editoptions:{value:"ACTIVE:ACTIVE;INACTIVE:INACTIVE;DELETED:DELETED",readonly:false},editrules:{edithidden:false}},
{name:'lastUpdatedOn', width:200,editable: false,resizable:false,sorttype:'date',formatter:'date',formatoptions:{ srcformat: 'M d y H:i:s', newformat: 'd M y h:i A' }}
],
pager: pager,
rowNum:200,
rowList:[200,400,600,1000],
//rowTotal:2000,
//loadOnce:true,
//rownumbers:true,
gridview : true,
//sortname: 'lastUpdatedOn',
viewrecords: true,
//sortorder: "desc",
toppager:true,
multiselect:true,
singleselect: false,
//multiboxonly:true,
//toolbar: [true,'both'],
caption:caption,
hidegrid: false,
gridComplete:function(id){
//$(chkMrk).hide();
//alert('grid complete');
},
beforeSelectRow: function(rowid, e)
{
// reset check box selection only when user clicks on another checkbox
if($(e.target).is("input:checkbox"))
{
// reset/clear other checkboxes selection before making a latest clicked row's checkbox as selected
jQuery(table).jqGrid('resetSelection');
}
// Code To Disable Check Box Selection When User Selects by Clicking on A Row
return $(e.target).is("input:checkbox");
//return(true);
}
});
jQuery(table).jqGrid('navGrid',pager,{del:false,add:false,edit:false,search:false,refresh:true,cloneToTop:true,afterRefresh:function(){}},{},{},{},{});
jQuery(table).jqGrid('navButtonAdd', table+ '_toppager_left',{caption:"Add WO", buttonicon:"ui-icon ui-icon-plus",id:"SUBPROJID", onClickButton: function(){},position:"first",title:"Add WO"});
});
这是我的整个代码jqgrid ...... 我有一行带有prjt名称和子项目名称的字段,其中我使用multiselect,在所有字段的行前显示复选框,它要求用户单击一个复选框以显示其他页面,如果用户不检查,则应显示一条警告消息以检查任何复选框。
答案 0 :(得分:0)
在最后一行中使用此选项取消选中上次选中的复选框
jQuery(this).attr('checked', false);
完整代码
jQuery(document).ready(function(){
jQuery('input:checkbox').change(
function(){
if (jQuery('input:checkbox:checked').length == jQuery('input:checkbox').length){
alert('Alert Text.');
jQuery(this).attr('checked', false);
}
});
});
答案 1 :(得分:0)
我希望我能够纠正您的要求。您在导航栏中添加了自定义按钮“添加WO”,如果单击该按钮时未选择任何行,则需要显示警告消息;如果选择了某行,则需要重定向到另一页。
您可以使用$(this).jqGrid("getGridParam", "selarrrow")
或$(this).jqGrid("getGridParam", "selrow")
内的onClickButton
获取所选行的列表,如果用户点击该按钮,则会调用selrow
。内部参数$(this).jqGrid("getGridParam", "selrow")
表示最后选定行的rowid。如果$(this).jqGrid("getGridParam", "selarrrow")
为null,则不选择任何行。调用multiselect:true
获取另一个内部参数“selarrrow”的值,该参数是所选id的数组。如果在使用selrow
时将填写。
因此,如果null
为selarrrow
或location.href
为空数组,我认为您可以向用户显示警告。如果需要重定向到另一个HTML页面,您可以为{{1}}分配新值。