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
});
}