Jquery jqgrid 在编辑的时候获取文本框里的值

来源:互联网 发布:淘宝网葫芦丝背包 编辑:程序博客网 时间:2024/05/24 03:37

  var lastFlag ;
   $gridTable = $("#gridTable").jqGrid( {
        datatype : 'json',
        colNames : ['age', 'sex' ],
        colModel : [
                   {name : 'age',index : 'age',width : 80,editable:true,edittype:'text',editrules:{required:true}},
                   {name : 'sex',index : 'sex',width : 160,editable:true,edittype:'text',editrules:{required:true}}
                   ],
        rowNum : 10,
        pager : "#tablePager",
        multiselect : false,
        viewrecords : true,
        sortorder : "desc",
        jsonReader : {
            root : "dataRows",
            repeatitems : false
        },
        caption : "数据列表",
        height : "auto",
        rownumbers : true,
      onSelectRow : function(id){
        if(id && id!=lastFlag){
         $('#gridTable').jqGrid('saveRow',lastFlag);      
         lastFlag=id;
        }
        $('#gridTable').jqGrid('editRow',id,true); 

      },  
     editurl : "../propManage.do?method=doNothing"       
    })


点击保存以后,需要通过getRowData()获取表格里的数据传回后台,但是当行在编辑状态下时,getRowData()取得的值为类似<input ....></input> 的html标签,不是编辑框中输入的值。

  解决办法:

  alert getRowData()获取出的数据,你会发现<input>标签的id是5_age, 6_age之类的,也就是行id+“_colModel name”,这就好办了,

  做法就是找到编辑行的单元格的id,然后得到单元格里的内容,通过"setRowData"将其保存起来,然后再通过getRowData()取值。

  示例:

     var selectedId = $('#gridTable').jqGrid("getGridParam", "selrow");
     var ageId = selectedId + "_age";
     var sexId = selectedId + "_sex";    
     var age= $('#'+ageId).val();
     var sex= $('#'+sexId).val();    
   $('#gridTable').jqGrid('setRowData',selectedId,{age:age,sex:sex},'');  

  再通过getRowData()取值,结果正确。

0 0
原创粉丝点击