What is the best way to force only uppercase letters to be entered in a field?
Like
For example you can use the attribute and trigger the method after the column value was changed. Something like:
attributes: {
"UsrTestColumnValidator": {
"dependencies": [
{
"columns": ["UsrTestColumnValidator"],
"methodName": "setUsrTestColumnValidator"
}
]
}
},
...
methods: {
setUsrTestColumnValidator: function() {
var currentValue = this.get("UsrTestColumnValidator");
var neededValue = currentValue.toUpperCase();
this.set("UsrTestColumnValidator", neededValue);
},
}Once something is input in the column from the UI it will be automatically converted to upper case.
Another option could be adding a custom column validator and allow only upper case letters to be inserted. Here is the article that explains how to create a custom validator for the column.
Best regards,
Oscar
Not sure, but I believe setting the value in the change event will cause the change event to be fired again, creating a loop.
I usually do this by faking the uppercase in the input field using some CSS, then actually change it to uppercase just before it is saved, like this:
1) Add CSS to the page to display the value in upper-case by adding this to the input (this just fakes it being upper case until saved):
text-transform: uppercase;Then, in the save I actually change the values to upper case (this actually changes the value to upper case so it is saved correctly):
save: function() {
this.set("UsrMyField", this.get("UsrMyField").toUpperCase());
this.callParent(arguments);
}Ryan