-
FEATURED COMPONENTS
First time here? Check out the FAQ!
Hi all, I would like to move this code below to a file so I can reuse it in more Textboxes without copying the same code, just putting the source of the file in the Textbox tag. Is it possible? Thanks.
<textbox id="TBIdFunc" xmlns:w="client">
<attribute w:name="doKeyDown_">
<![CDATA[
function (evt) {
var keyCode = event.keyCode;
if( keyCode == 8 // back space
|| keyCode == 13 // enter
|| keyCode == 16 // enter
|| (keyCode >= 35 && keyCode <= 40) // home, end, arrows
|| keyCode == 46) { // Delete
this.$doKeyDown_(evt);
} else if ( !evt.shiftKey && // only do without shift key
(keyCode >= 65 && keyCode <= 90)) {// teclas A-Z this.$doKeyDown_(evt);
} else {
evt.stop();
return;
}
}
]]>
</attribute>
</textbox>
for a single reusable method override I often use zk.override
in combination with a feature flag
zul file
<!-- TODO: add script globally at root page or via lang-addon.xml -->
<?script src="customTextbox.js"?>
<zk xmlns:w="client">
Default Textbox: <textbox/>
<separator/>
Customized Textbox: <textbox w:featureEnabled="true"/>
</zk>
customTextbox.js
zk.afterLoad('zul.inp', function() {
var xTextbox = {};
zk.override(zul.inp.Textbox.prototype, xTextbox, {
doKeyDown_ : function(evt) {
if(!this.featureEnabled) {
xTextbox.doKeyDown_.apply(this, arguments);
return; //exit if feature is not enabled
}
var keyCode = event.keyCode;
if( keyCode == 8 // back space
|| keyCode == 13 // enter
|| keyCode == 16 // enter
|| (keyCode >= 35 && keyCode <= 40) // home, end, arrows
|| keyCode == 46) { // Delete
xTextbox.doKeyDown_.apply(this, arguments);
} else if (!evt.shiftKey && // only do without shift key
(keyCode >= 65 && keyCode <= 90)) {// teclas A-Z
xTextbox.doKeyDown_.apply(this, arguments);
} else {
evt.stop();
return;
}
}
});//zk.override
});//zk.afterLoad
see this runnable example on zkfiddle
Did it like this and didn't work. I can introduce numbers in my Textbox.
Start of my zul file:
<?script src="/Recursos/js/nonumeros.js"?>
<zk xmlns:n="native">
Textbox I want to edit:
<textbox xmlns:w="client" w:featureEnabled="true"/>
My JS file (nonumeros.js)
zk.afterLoad('zul.inp', function() {
var xTextbox = {};
zk.override(zul.inp.Textbox.prototype, xTextbox, {
doKeyDown_ : function(evt) {
if(!this.featureEnabled) {
xTextbox.doKeyDown_.apply(this, arguments);
return; //exit if feature is not enabled
}
var keyCode = event.keyCode;
if( keyCode == 8 // back space
|| keyCode == 13 // enter
|| keyCode == 16 // enter
|| (keyCode >= 35 && keyCode <= 40) // home, end, arrows
|| keyCode == 46) { // Delete
xTextbox.doKeyDown_.apply(this, arguments);
} else if (!evt.shiftKey && // only do without shift key
(keyCode >= 65 && keyCode <= 90)) {// teclas A-Z
xTextbox.doKeyDown_.apply(this, arguments);
} else {
evt.stop();
return;
}
}
});//zk.override
});//zk.afterLoad
Asked: 2018-08-28 16:08:35 +0800
Seen: 9 times
Last updated: Aug 31 '18
Theme javascript wpd file not found
Placeholder with phonemasking in IE11 Browser not working
Problem generating label value dynamically with JavaScript
Page as ZUL component, multiple instances of the same VM on one page
zk.wpd JS error, with window inside window
Using ZK 5: How to add a script into the head tag from java?
Unable to get default printer name while using applet
Facing issue in masking on phone [closed]
coerceFromString_ override no longer works from 6.5.1 [closed]