Exit
  • Global community
    • Language:
      • Deutsch
      • English
      • EspaƱol
      • FranƧais
      • PortuguĆŖs
  • ę—„ęœ¬čŖžć‚³ćƒŸćƒ„ćƒ‹ćƒ†ć‚£
  • ķ•œźµ­ ģ»¤ė®¤ė‹ˆķ‹°
0

ExtendScript edittext limit number of characters

Participant ,
Jul 14, 2020 Jul 14, 2020

Is there an attribute for edittext objects that limits the amount of digits I can write? I've tried "characters", "maxsize" and "maxlength", but thats not working. I know I could use a onChange function to delete characters exceeding my limit, but isn't there an attribute to prevent it beforehand?

 

I have Input fields for seconds & fps and want to reduce the propabillity of user-errors :

Corvin0_0-1594716392677.png

 

TOPICS
How to , Scripting
1.4K
Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines

correct answers 1 Correct answer

Advocate , Jul 14, 2020 Jul 14, 2020

Unfortunately, not.

The `characters` parameter simply sets the horizontal size of the EditText element but does not limit the string length inside it.

Your best bet here would be to use `onChanging` attribute to trim exceeding characters.

 

Cheers.

Translate
Advocate ,
Jul 14, 2020 Jul 14, 2020

Unfortunately, not.

The `characters` parameter simply sets the horizontal size of the EditText element but does not limit the string length inside it.

Your best bet here would be to use `onChanging` attribute to trim exceeding characters.

 

Cheers.

Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Participant ,
Jul 14, 2020 Jul 14, 2020

If anyone else has this problem, here is how I solved it with onChanging, as Tomas suggested. Simple but useful:

 

myEditText.onChanging = function(){limitCharacters(this,2);}

 

function limitCharacters(myInput,myLimit){
myInput.text = myInput.text.substr(0,myLimit);
}

Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
New Here ,
May 27, 2022 May 27, 2022

hi @Corvinus Corax, thanks for sharing, i have question, i tried your script, it worked, but it didn't stop user from inputing character? is just make my edittext print last 2 character that i input?

Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Participant ,
May 27, 2022 May 27, 2022
LATEST

Just wrote a quick test to confirm, and yes, you are right. The field accepts the first input as first digit, then the second as second and the third as first again, fourth as second and so on...

 

I think the fastest way to prevent a user to input more than those first two characters would be to lock the editfield after 2 characters are entered. That would#Ve been no suitable option for me, as I wanted my system editable at all times, but it would stop the user from inputing more than 2 chars as you suggested.

 

So youd' have to count in a onChangeFunction and if it reaches 2 set the enabled flag for the edittext to false.

Hope that helps with your specific problem.

Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines