Rich, I think the problem is that picklist fields are really stored as text, so when you try to use a “less than or equals to” operator you are going to get unexpected results. Becuse its text the question “Is 10 greater than 4” is being evaluated as false. So when 4 gets put in your picklist field - the fields on 10 are getting rendered. I’m honestly not sure how the first example is working.
Have you ever tried to sort numbers that were really text? I have this happen when sorting tables in MS Word. When you sort by the number colum you get things like this.
1
10
11
2
3
31
32
The same thing is happening here.
Here are a few work arounds.
1. Add a leading 0 to picklist values 1 - 9. (OK - that’s not really an option is it…)
2. Change your conditional rendering so the 10 line only shows when the picklist value = 10. Using a direct “=” condition makes sense because this is the only condition when you want the fields to show up (while in lines 9 - 1 there are more than one condition)
3. Add a formula field to your object that takes the picklst field and turns it into a number. The formula would look like this: value(text(Picklist_Field)) . Then do your rendering on the formula field.
Hope this helps…
On a side note. I’m going to ask our devs why we even allow greater than and less than operators on picklst fields… That seems like its confusion just waiting to happen.