-
Type:
Bug
-
Resolution: Fixed
-
Priority:
Normal
-
Affects Version/s: 8.6.1
-
Component/s: Components
-
Security Level: Jimmy
-
None
-
ZK 9.0.1 S1
-
None
Description
on excel you have cell with decimal value.
when choose cell and copy, on clipboard we have string like (with a line break)
"12.3
"
so can't paste to Decimalbox, need trim before paste
a version before i can do it.
Workaround
<script><![CDATA[
zk.afterLoad("zul.inp", function () {
var _xInputWidget = {};
zk.override(zul.inp.InputWidget.prototype, _xInputWidget, {
_shallIgnore: function (evt, keys) {
if (evt.keyCode || evt.charCode) {
// ZK-1736 add metakey on mac
if (zk.mac && evt.metaKey)
return;
else {
var code = (zk.ie < 11 || zk.opera) ? evt.keyCode : evt.charCode;
if (!evt.altKey && !evt.ctrlKey && _keyIgnorable(code)
&& keys.indexOf(String.fromCharCode(code)) < 0) {
evt.stop();
return true;
}
}
} else {
var orgEvtText = evt.domEvent.originalEvent.clipboardData.getData('text'),
text = (orgEvtText) ? orgEvtText : window.clipboardData.getData('text'),
text = text.trim();
keys = keys.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, '\\$&');
var regKey = '^[' + keys + ']+$';
if (!new RegExp(regKey).test(text)) {
evt.stop();
return true;
}
}
},
_updateValue: function (pasteEvent) {
//Support maxlength for Textarea
if (this.isMultiline()) {
var maxlen = this._maxlength;
if (maxlen > 0) {
var inp = this.getInputNode(),
clipboardEvent = pasteEvent ? pasteEvent.domEvent.originalEvent : null,
val = clipboardEvent ? clipboardEvent.clipboardData.getData('text') : inp.value;
val = val.trim();
if (val != this._defRawVal && val.length > maxlen) {
inp.value = val.substring(0, maxlen);
if (pasteEvent)
pasteEvent.stop();
}
}
}
this._startOnChanging();
}
});
});
]]></script>
- relates to
-
ZK-3838 users can paste non-digital characters into a intbox
-
- Closed
-