Your achievements

Level 1

0% to

Level 2

Tip /
Sign in

Sign in to Community

to gain points, level up, and earn exciting badges like the new
Bedrock Mission!

Learn more

View all

Sign in to view all badges

SOLVED

Ignore case

DKinsley
Level 9
Level 9

Is there a way to have the script ignore upper and lower case?

I have a script that creates an array of the dropdown items then compares the users input to see if there is a match. The user needs to know to capitilize the first letter or a match will not be found. I want the script to find a match even if they do not capitalize the first letter. here's the script:

// Check that the user has not typed in a value
// that does not exist in the list. If they have
// then clear the dropdown.

// First create an array of the items in the
// dropdown list.
var vUserInput = [];
for (var i=0; i<this.length; i++) {
vUserInput.push(this.getDisplayItem(i));
}

// Check that the value is not in the array
if (this.rawValue !== null && vUserInput.lastIndexOf(this.rawValue) === -1) {
this.rawValue = null; // clear the dropdown
xfa.host.beep("3"); // audio alert to the user
this.ui.oneOfChild.border.fill.color.value = "255,225,225"; // red
}

1 Accepted Solution
radzmar
Correct answer by
Level 10
Level 10

OK,

then you can use the sample from Bruce, which already does what you're looking for.

http://forums.adobe.com/message/2372156#2372156#2372156#2372156 (it's the countries.pdf and xml)

View solution in original post

11 Replies
TundraSteve
Level 8
Level 8

Why not just uppercase or lowercase the values when comparing then you don't have to worry about the case the user enters

DKinsley
Level 9
Level 9

I guess I am not sure how to do what you are suggesting. Are you saying to write a script that changes the users entry to upper case and then one that changes it to lower case? and compare both?

What function/script changes the case of the users entry?

DKinsley
Level 9
Level 9

I tried the following but it does not work.

var vUserInput = toTitleCase([]);

for (var i=0; i<this.length; i++) {

vUserInput.push(this.getDisplayItem(i));

}

TundraSteve
Level 8
Level 8

this.getDisplayItem(i).toUpperCase() will push the uppercase into the array.  Then the compare would be to  this.rawValue.toUpperCase().  Thus the compare would be all uppercase removing the case sensitivity

DKinsley
Level 9
Level 9

This is what I have but I can't get it to work... what do I have wrong?

var vUserInput = [];
for (var i=0; i<this.length; i++) {
vUserInput.push(this.getDisplayItem(i).toUpperCase());
}

// Check that the value is not in the array
if (this.rawValue !== null && vUserInput.lastIndexOf(this.rawValue.toUpperCase()) === -1) {
this.rawValue = null; // clear the dropdown
xfa.host.beep("3"); // audio alert to the user
this.ui.oneOfChild.border.fill.color.value = "255,225,225"; // red

DKinsley
Level 9
Level 9

I seperated the top section of the script from the bottom and this part will not work.

var vUserInput = [];

for (var i=0; i<this.length; i++){

vUserInput.push(this.getDisplayItem(i).toUpperCase());

}

Can you help?

radzmar
Level 10
Level 10

What are you trying to do with your dropdown?

Do you want something like a find-as-type method?

Does the dropdown allow custom entries?

DKinsley
Level 9
Level 9

Yes - I have script that opens the dropdown list when the focus is on that dropdown object. We need the user to be able to start typing the first letter or two to shorten the list. We wanted it to work regardless if they type lower or uppercase letters. Yes - it allows custom entries.

radzmar
Correct answer by
Level 10
Level 10

OK,

then you can use the sample from Bruce, which already does what you're looking for.

http://forums.adobe.com/message/2372156#2372156#2372156#2372156 (it's the countries.pdf and xml)

View solution in original post