BUILD: Version v12.0p_2020-03-03 (2020-03-03)
BROWSER: Chrome/Firefox latest
LOCALE: de
I have been trying to figure something out in regards to input with german users.
No suprise in Germany the decimal seperator is "," instead of "." -- I am certain that surpises nobody here.
The issue I am running into is the following.
On a german Keyboard the character under the Numpad is "," and people typing in decimals into Listgrids and/or Forms run into Problems with certain Options.
1) localFloat is as far as i can tell wortless here I only included it for completions sake or if I may have missed something.
2) Plain Float works perfectly it enforces the right length of the pre/post - decimal parts BUT after the 3 numbers before the decimal you want to put in a "," and 2 decimals afterwards which it does not accept. It only works if you use a "." while typing.
Question:
Is there a Setting for this or maybe a clever workaround ... did I do something wrong in my attributes maybe.
Ideas:
I was thinking of catching the input and letting it write a "." when a "," is input via a keypress function on the field.
The Issue here is that It can overwrite legitimate entries with false ones.
My simple Testcase is as follows:
	
Workaround Idea:
	Issue:
This can overwrite any format or restriction put into the field.
I have not found something that lets me input characters into a field as typing would in the documentation.
					BROWSER: Chrome/Firefox latest
LOCALE: de
I have been trying to figure something out in regards to input with german users.
No suprise in Germany the decimal seperator is "," instead of "." -- I am certain that surpises nobody here.
The issue I am running into is the following.
On a german Keyboard the character under the Numpad is "," and people typing in decimals into Listgrids and/or Forms run into Problems with certain Options.
1) localFloat is as far as i can tell wortless here I only included it for completions sake or if I may have missed something.
2) Plain Float works perfectly it enforces the right length of the pre/post - decimal parts BUT after the 3 numbers before the decimal you want to put in a "," and 2 decimals afterwards which it does not accept. It only works if you use a "." while typing.
Question:
Is there a Setting for this or maybe a clever workaround ... did I do something wrong in my attributes maybe.
Ideas:
I was thinking of catching the input and letting it write a "." when a "," is input via a keypress function on the field.
The Issue here is that It can overwrite legitimate entries with false ones.
My simple Testcase is as follows:
Code:
	
	<!doctype html>
<html lang="en">
<head>
    <title>Testcaese decimals</title>
    <SCRIPT>var isomorphicDir="isomorphic/";</SCRIPT>
    <SCRIPT SRC="isomorphic/system/modules/ISC_Core.js"></SCRIPT>
    <SCRIPT SRC="isomorphic/system/modules/ISC_Foundation.js"></SCRIPT>
    <SCRIPT SRC="isomorphic/system/modules/ISC_Containers.js"></SCRIPT>
    <SCRIPT SRC="isomorphic/system/modules/ISC_Grids.js"></SCRIPT>
    <SCRIPT SRC="isomorphic/system/modules/ISC_Forms.js"></SCRIPT>
    <SCRIPT SRC="isomorphic/system/modules/ISC_DataBinding.js"></SCRIPT>
    <SCRIPT SRC="isomorphic/skins/Tahoe/load_skin.js"></SCRIPT>
    <SCRIPT SRC="isomorphic/locales/frameworkMessages_de.properties"></SCRIPT>
    <style>
    </style>
</head>
<body>
<script>
Canvas.resizeFonts(3);
isc.DynamicForm.create({
    ID: "testcase",
    width: "100%",
    fixedColWidths: true,
    colWidths: [150, "*"],
    isGroup: true,
    groupTitle: "Float/localFloat Testcase",
    fields : [
        {ID: "pe_dstd", name:"pe_dstd", title:"localFloat", type:"localeFloat", titleAlign:"left", length:5, decimalPrecision:2, decimalPad:2, keyPressFilter: "[0-9.,]", format: "0.00", defaultValue: ""},
        {ID: "pe_ss", name:"pe_ss", title:"float", type:"float", titleAlign:"left", length:6, decimalPrecision:2, decimalPad:2, keyPressFilter: "[0-9.,]", format: "0.00", defaultValue: "",},
    ]
});
</script>
Workaround Idea:
Code:
	
	keyPress: function (item, form, keyName, characterValue) {
                console.log(keyName);
                console.log(characterValue);
                console.log(item);
                if (characterValue == 44) {
                    console.log("chara ,");
                    item.setValue(item.getValue()+".");
                    return(false);
                }
            }
This can overwrite any format or restriction put into the field.
I have not found something that lets me input characters into a field as typing would in the documentation.
Comment