onChange client script to determine if a field was empty or not before the value in the field changed

patricklatella
Mega Sage

hi all,

I'm working on an onChange client script on the Problem table that I want to throw one field message if the field was empty before the change, and another message if the field was not empty when the change was made.   Seems simple enough, but I'm finding the using script like

if (oldValue != ''){

//then do something herre

}

doesn't work.   What is the use case for "oldValue" and "newValue"?

my script that is close, but not working is below.   Anyone see what's wrong?   Or have a better solution?   thanks!

function onChange(control, oldValue, newValue, isLoading, isTemplate) {

    if (isLoading) {

          return;

    }

//when a value is entered the first time

var prevValue = jQuery(control).attr('data-old-value') || '';    

// touching other form controls causes this to fire, so only respond when the newValue is valid

      if (newValue && newValue.length){

               

              if(prevValue.length == 0){

g_form.showFieldMsg('u_workaround', 'Please be sure to create Known Error Record after entering the Workaround.','info');

jQuery(control).attr('data-old-value', newValue);

return;

} else if (prevValue.length != 0){

g_form.showFieldMsg('u_workaround', 'Please be sure to update the Known Error Record after editing the Workaround.');

}

}

}

1 ACCEPTED SOLUTION

Patrick,



OldValue is unknown on load so use below code:



if (g_scratchpad.u_input == '' && newValue !='')


alert('1');


if (g_scratchpad.u_input != '' && newValue !='')


alert('2');



This will work for sure.


View solution in original post

15 REPLIES 15

That will work when newvalue is not blank.



You might want to change your opening lines:



      if (isLoading || newValue == '') {


              return;


      }


patricklatella
Mega Sage

with this script is always thinks the oldValue is not nothing, whether the field had an entry or not


patricklatella
Mega Sage

here's a screen shot



find_real_file.png


patricklatella
Mega Sage

even with that addition, it always is thinking the "else" condition



find_real_file.png



load form with empty field


find_real_file.png



change field


find_real_file.png


Patrick,



OldValue is unknown on load so use below code:



if (g_scratchpad.u_input == '' && newValue !='')


alert('1');


if (g_scratchpad.u_input != '' && newValue !='')


alert('2');



This will work for sure.