6 Replies Latest reply on Nov 10, 2017 1:21 PM by soulglowdeej

    How can you add text to a results driven text box?

    soulglowdeej Level 1

      Hi,

       

      Is there anyway for a user to add text to a text box that has a custom script applied?

       

      Joel_Geraci has given the following script which works perfectly, however I'm wondering if there's a way to do the same thing, only allow users to then add/change the text that's generated...any ideas?

       

      Thanks

       

      (My work around is simply put a separate text box at the side, but wondering if there's a script work around.)

       

       

      var paras = [];

      var fields = this.getField( “CB” ).getArray();

      // sort by name

      fields.sort( function( a, b ) {

      var nameA = a.name.toUpperCase(); // ignore upper and lowercase

      var nameB = b.name.toUpperCase(); // ignore upper and lowercase

      if ( nameA < nameB ) {

      return -1;

      }

      if ( nameA > nameB ) {

      return 1;

      }

       

       

           // names must be equal

      return 0;

      } );

       

       

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

      var field = fields[ i ];

      if ( field.isBoxChecked( 0 ) ) {

      paras.push( field.value )

      }

      }

       

      event.value = paras.join( "\n\n " )

        • 1. Re: How can you add text to a results driven text box?
          Joel_Geraci Adobe Community Professional

          Swap the last line with the following.

           

          event.target.defaultValue = paras.join( "\n\n " );
          this.resetForm([event.target.name]);
          

           

          This will set the assembled string as the default value then clear that field so that the default is present but editable.

          • 2. Re: How can you add text to a results driven text box?
            soulglowdeej Level 1

            Hi Joel,

             

            Such a speedy reply! Thank you

             

            ... I can't get that to work unfortunately - it still removes the inputted text.

             

            Here's part of the file I'm working on if it helps? WeTransfer

             

            Thanks again

            • 3. Re: How can you add text to a results driven text box?
              Joel_Geraci Adobe Community Professional

              Do you mean you want the checkboxes to append to some existing text or do you want it to replace any existing text but still allow for editing after the replace?

              • 4. Re: How can you add text to a results driven text box?
                soulglowdeej Level 1

                Hi,

                 

                The latter...I'm not sure it's possible.

                I'm wanting the user to choose the questions on page 1, that will then populate the text box on page 2. Then when the user goes to page 2, they might want to alter or drop notes on the questions, so it'd be good if it was editable.

                 

                If it's not doable (or not easy) don't worry, I think the work around of simply putting an additional text box to the side would do the trick just as well.

                 

                (In an ideal world what would happen is each question that's ticked would create a box on the next page with the question as the header, and then a text box underneath where they can add the text....but that, in my minute head, is faaaaar too tricky).

                 

                 

                • 5. Re: How can you add text to a results driven text box?
                  Joel_Geraci Adobe Community Professional

                  Ok then... go with this.

                   

                  if (event.target.value == "") {
                      event.target.defaultValue = paras.join( "\n\n " ); 
                      this.resetForm([event.target.name]);
                  }
                  

                   

                  This will make the script update the field value only if it's empty.

                  • 6. Re: How can you add text to a results driven text box?
                    soulglowdeej Level 1

                    hmmmm...that doesn't seem to work either.

                     

                    var paras = [];

                    var fields = this.getField( “CB” ).getArray();

                    // sort by name

                    fields.sort( function( a, b ) {

                    var nameA = a.name.toUpperCase(); // ignore upper and lowercase

                    var nameB = b.name.toUpperCase(); // ignore upper and lowercase

                    if ( nameA < nameB ) {

                    return -1;

                    }

                    if ( nameA > nameB ) {

                    return 1;

                    }

                     

                     

                         // names must be equal

                    return 0;

                    } );

                     

                     

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

                    var field = fields[ i ];

                    if ( field.isBoxChecked( 0 ) ) {

                    paras.push( field.value )

                    }

                    }

                    if (event.target.value == "") { 

                    event.target.defaultValue = paras.join( "\n\n " );  

                    this.resetForm([event.target.name]); 

                     

                     

                    Thanks so much for your help but don't worry - this feels like it's a pain so I don't want to use all your time. Thanks for trying though