Would like to use this script in DataTables
opened this issue · comments
Hi, recently I am using DataTables (https://datatables.net/) and I was trying to implement your script in the Editor part (https://editor.datatables.net/).
To implement we have to write some integration code (https://editor.datatables.net/manual/development/field-types). I tried to do this, but something I could not find out and is only resulting in [..]Uncaught TypeError: Cannot read property 'createRange' of undefined
at getInputSelection (jquery.maskMoney.js:121)[..] errors.
To use a 3rd party script it is necessary to define 3 functions; create, set and get. I thought that I did this well, but the final result is not working.
The 3 functions I wrote for integration are below:
_fieldTypes.moneymask = {
create: function (conf) {
var that = this;
conf._input = $('<input/>')
.attr($.extend(
{
id: DataTable.Editor.safeId(conf.id),
type: `text`,
prefix: `R$ `,
suffix: ``,
affixesStay: true,
thousands: `.`,
decimal: `,`,
precision: 2,
allowZero: false,
allowNegative: false,
doubleClickSelection: true,
allowEmpty: false,
bringCaretAtEndOnFocus: true
},
conf.attr || {} ));
// console.log(conf._input.attr(`id`));
// console.log(conf._input.attr(`type`));
// console.log(conf._input.attr(`prefix`));
// console.log(conf._input.attr(`suffix`));
// console.log(conf._input.attr(`affixesStay`));
// console.log(conf._input.attr(`thousands`));
// console.log(conf._input.attr(`decimal`));
// console.log(conf._input.attr(`precision`));
// console.log(conf._input.attr(`allowZero`));
// console.log(conf._input.attr(`allowNegative`));
// console.log(conf._input.attr(`doubleClickSelection`));
// console.log(conf._input.attr(`allowEmpty`));
// console.log(conf._input.attr(`bringCaretAtEndOnFocus`));
return conf._input;
},
set: function (conf, val) {
conf._input
.trigger(`.maskMoney`)
.trigger(`keypress.maskMoney`)
.trigger(`keydown.maskMoney`)
.trigger(`blur.maskMoney`)
.trigger(`focus.maskMoney`)
.trigger(`click.maskMoney`)
.trigger(`dblclick.maskMoney`)
.trigger(`cut.maskMoney`)
.trigger(`paste.maskMoney`)
.trigger(`mask.maskMoney`)
.maskMoney(`mask`,val)[0];
//
console.log(conf._input.maskMoney('mask',val)[0])
},
get: function (conf) {
// console.log(conf._input.maskMoney(`unmasked`)[0])
return conf._input.maskMoney(`unmasked`)[0];
}