Free-jgrid и маска ввода: форматирование номера при вводе в режиме редактирования

Я использую free-jqgrid v.4.15.4

Я хочу отформатировать число при вводе в режиме редактирования.

Я использую Inputmask, продукт RobinHerbots, чтобы сделать это.

Он хорошо работает с jqgrid v.4.6.0, но не с free-jqgrid.

Так что бы я сделал, чтобы это исправить?

Это 2 jsfiddle:

Jqgrid v.4.6.0: демо с jqgrid и

Free-jqgrid v.4.15.4: демонстрация с помощью free-jqgrid

 var mydata = [{
    name: "Toronto",
    country: "Canada",
    continent: "North America",
    quantity: 1200000
}, {
    name: "New York City",
    country: "USA",
    continent: "North America",
     quantity: 2200000
}, {
    name: "Silicon Valley",
    country: "USA",
    continent: "North America",
     quantity: 3200000
}, {
    name: "Paris",
    country: "France",
    continent: "Europe",
     quantity: 4200000
}]

$("#grid").jqGrid({
    data: mydata,
    datatype: "local",
    colNames: ["Name", "Country", "Continent","Quantity"],
    colModel: [{
        name: 'name',
        index: 'name',
        editable: true,
    }, {
        name: 'country',
        index: 'country',
        editable: true,
    }, {
        name: 'continent',
        index: 'continent',
        editable: true,
    },{
        name: 'quantity',
        index: 'quantity',
        editable: true,
             formatter:'number',
                        formatoptions:{decimalSeparator:".", thousandsSeparator: " ", decimalPlaces: 2}
    }],
    pager: '#pager',
    'cellEdit': true,
   afterEditCell: function (rowid, cellname, value, iRow, iCol) {
                $('#' + rowid + '_quantity').inputmask("decimal", {
                        radixPoint: '.',
                        groupSeparator: ',',
                        digits: 2,
                        autoGroup: true,
                        rightAlign: false,
                        clearMaskOnLostFocus: false
                    });
    },
    'cellsubmit' : 'clientArray',


    editurl: 'clientArray'
});

1 ответ

Решение

Причина проста: вы использовали rowid вместо iRow, Фиксированный код будет

afterEditCell: function (rowid, cellname, value, iRow, iCol) {
   $('#' + iRow + '_' + cellname).inputmask("decimal", {
       radixPoint: '.',
       groupSeparator: ',',
       digits: 2,
       autoGroup: true,
       rightAlign: false,
       clearMaskOnLostFocus: false
   });
}

Смотрите http://jsfiddle.net/OlegKi/6yc28po5/14/

Другие вопросы по тегам