Skip to main content
Nintex Community Menu Bar
Question

Picklist Value Rendering Based on Text Field Value

  • July 9, 2024
  • 1 reply
  • 25 views
  • Translate All

Forum|alt.badge.img+4

I imagine someone has asked this before, but I can’t seem to find it after looking through a few dozen topics.

Here’s the scenario:

  • Field A is a text field which can have values such as Tier 0, Tier 1, Tier, 2, etc. populated by WF rules
  • Field B is a picklist for upgrading the above Tiers with 2 values, Tier 3 and Tier 4
  • Tier 3 should only be available for select if Field A is Tier 2, or if Field B itself is Tier 3 (so we can unselect the upgrade)
  • Tier 4 should always be selectable
We’ve used a custom snippet before for picklist rendering, but due to being JS novices, I can’t seem to figure out how to incorporate a second field.

This is what we previously used for Lead Status, which was only rendering based on its own values:

var field = arguments[0],    //value = skuid.utils.decodeHTML(arguments[1]);
    value = arguments[1],
    $ = skuid.$;
    
var picklistEntries = field.metadata.picklistEntries;

// If value is Reached Out or Engaged,
// then only show those values
if ($.inArray(value,[‘Reached Out’,‘Engaged’])!==-1) {
    picklistEntries.length = 0;    
    picklistEntries.push(
        { value: ‘Reached Out’, label: ‘Reached Out’, defaultValue: false, active: true },
        { value: ‘Engaged’, label: ‘Engaged’, defaultValue: false, active: true }
    );
} else if (value===‘Sales Accepted’) {
    picklistEntries.length = 0;   
    picklistEntries.push(
        { value: ‘Sales Accepted’, label: ‘Sales Accepted’, defaultValue: false, active: true },
        { value: ‘Reached Out’, label: ‘Reached Out’, defaultValue: false, active: true },
        { value: ‘Engaged’, label: ‘Engaged’, defaultValue: false, active: true }
    );
}


// Run the standard picklist renderer for the given mode
skuid.ui.fieldRenderers[field.metadata.displaytype]field.mode;  


Where might I start to pull in that Field A value and use that in the logic? (I really this is pretty basic, so thanks in advance)

This topic has been closed for replies.

1 reply

Forum|alt.badge.img+18

Dylan,

You need to get a reference to the model and row of the field whose data you want to use.

In this case, I’d assume that Field A is on the same model as Field B.

// get the model and row<br>var model = field.model,<br>&nbsp; &nbsp; row = field.row; <br>// get the value of Field A<br>var fieldA = model.getFieldValue(row,'Field_A__c');


From there you can use an if or switch with the value of fieldA to determine what values to push into your picklist for Field B.

Does that make sense?

Translate