Rule with Lookup field

Home Forums Classic DFFS Rule with Lookup field

Viewing 12 reply threads
  • Author
    Posts
    • #27726
      Leonid
      Participant

        I have a multiple lookup field, type of SPFieldLookupMulti.
        The fields isnt listed in Rules. Is that a limitation or Im missing something?

      • #27728
        Leonid
        Participant

          adding to above: the SPFieldLookupMulti field is not exposed in
          `spjs.dffs.beforeProperties

        • #27733
          Alexander Bautz
          Keymaster

            Hi,
            Unfortunately a multi lookup column cannot be used as a trigger. You can use a trigger of type “Custom javascript function” and write your custom code in a function in Custom JS – returning true or false to use it on form load.

            If you need to have it triggering on change you must write some custom js to sense it changing and then use a custom function to do your magic.

            I tested now and my multilookup column does show in spjs.dffs.beforeProperties. Maybe there is some difference with older versions of SharePoint – which version are you on?

            Alexander

          • #27741
            Leonid
            Participant

              Alex,
              This is SP Online. I checked spjs.dffs.beforeProperties in dffs_PreSaveAction and value is empty. What am I missing?

              Attachments:
            • #27745
              Alexander Bautz
              Keymaster

                Is this in EditForm? – the beforeproperties only reflect the value the field had last time it was saved and not the previous value when editing in the same session.

                Alexander

              • #27751
                Leonid
                Participant

                  Its a New form. Other properties correctly show the fields values.
                  By “Custom javascript function” you suggect jQuery instead of getFieldValue?

                • #27754
                  Alexander Bautz
                  Keymaster

                    In NewForm, the object will contain the default values that the form is loaded with, but in general it is supposed used to keep track of the values that the form had when it loaded, and not the changes made withing the current session.

                    If you can explain what you are trying to do I’ll see if I can help you with a code snippet.

                    Alexander

                  • #27815
                    Leonid
                    Participant

                      Alex, other fields show defined values when checked in dffs_PreSaveAction. Only multi- lookup is empty. Single- lookup field shows correct value as well. Feels like a bug.
                      I hope theres a way to make a Rule work with multi- lookup field. If not, I need to check multi- lookup values before submitting the form and populate a hidden field based on selection.

                    • #27838
                      Alexander Bautz
                      Keymaster

                        I’m still not 100% sure I follow. If you are in NewForm you cannot really have a “beforeproperty” of any fields other than the ones that have a default value set in the list settings for that field (and a required single lookup field has the first item selected by default when it is set to required in the list settings).

                        What is it you try to do exactly? – if you give me some more details I’m sure I can find a solution for you.

                        Alexander

                      • #27989
                        Leonid
                        Participant

                          Alex,

                          The NEW form has a lookup field with multiple values. I need to read its value BEFORE form is submitted. Please suggest approach. So far all the spjs.dffs objects I looked have empty value:
                          getFieldValue()
                          afterProperties
                          beforeProperties

                        • #28004
                          Alexander Bautz
                          Keymaster

                            You can use a snippet like this:

                            var arr = [];
                            jQuery("#dffs_MultiLookup select:last option").each(function(i,o){
                              arr.push(jQuery(o).text());
                            });
                            // arr is an array of all the text values selected in the multilookup

                            Replace MultiLookup with your field name.

                            Alexander

                          • #28867
                            Tricia S.
                            Participant

                              How do you asses that there has been a/any change for multi-lookup field?

                              I have my JS for what I want to do but I can’t seem to get it to run after a change has occurred. I need it for both New and Edit. Since its not in the rules I’m not sure how I can trigger it.

                            • #28873
                              Alexander Bautz
                              Keymaster

                                You can use something like this:

                                String(getFieldValue("MultiLookup")) !== String(spjs.dffs.beforeProperties.MultiLookup);

                                This code compares the current value of a field called “MultiLookup” (using getFieldValue) with the last saved value (using spjs.dffs.beforeProperties) and compares them.

                                When do you need to run this code? – if it is pre save you can add it to a function called dffs_PreSaveAction like this:

                                function dffs_PreSaveAction(){
                                    if(String(getFieldValue("MultiLookup")) !== String(spjs.dffs.beforeProperties.MultiLookup)){
                                        // Do something
                                    }
                                    return true;
                                }

                                Alexander

                            Viewing 12 reply threads
                            • You must be logged in to reply to this topic.