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

I forgot to mention one thing



You need to create a display business rule



g_scratchpad.fieldname = current.fieldname



in my case fieldname is u_input.



g_scratchpad.u_input = current.u_input


Hello,



After the change did you save the form and tried again?


I think empty value will only be taken in consideration when you save the form with empty value and try again.


Funny . . . you take out isLoading and it works fine.


patricklatella
Mega Sage

thanks everyone for the help...and Shishir it didn't matter when the record had been saved with an empty field, still threw the wrong error.



Kunal's solution worked perfectly...thanks again guys!