Page 1 of 1

Evaluate undefined for a field

Posted: 21 Apr 2013
by ChrisMBS
I'm trying to evaulate whether or not a multiline text field is blank.

I successfully used (fd.field('field name').control().value("")) for other text field. I did an alert on the field and it came back undefined.

What is the way to test for an empty multiline textbox in Forms Designer?

Re: Evaluate undefined for a field

Posted: 22 Apr 2013
by Dmitry Kozlov
There are 3 types of multiline text boxes in SharePoint: plain, rich and enhanced. You can read how to get/set values for them in our blog: http://spform.com/forms-designer- ... eld-values

Re: Evaluate undefined for a field

Posted: 10 Nov 2014
by JHMark
But how do you test for empty field (the user skipped it)? When empty, my Multiline Enhanced Rich Text Field returns a value of <p></p>, but when I test for a match on that value, it fails.

!fd.field('addcomments').control()._el().find('div.ms-rtestate-write').html()

does not work

fd.field('addcomments').control()._el().find('div.ms-rtestate-write').html() == '<p> </p>'

does not work

I only need to know if there was no user input to this field.

Re: Evaluate undefined for a field

Posted: 11 Nov 2014
by Dmitry Kozlov
Hi,

You can check whether the Enhanced Rich Text field is empty following way:

Code: Select all

if (!fd.field('RTE').control()._el().find('div.ms-rtestate-write').text().trim()) {
    alert('RTE field is empty');
}

Re: Evaluate undefined for a field

Posted: 11 Nov 2014
by JHMark
This almost works.

What does trim() trim?

If I tab through the Multiline Enhanced Rich Text Field, it leaves a non-printable character in there; something that trim() does not trim. This also happens when the form is refreshed. End result is that !fd.field('RTE').control()._el().find('div.ms-rtestate-write').text().trim() is not reliable because it returns "false" even when the field appears "empty".

If I tab back into the field, click backspace or delete and then tab out, I get "true". it seems to clear whatever "character" is hiding there.

Re: Evaluate undefined for a field

Posted: 12 Nov 2014
by Dmitry Kozlov
trim() function removes all spaces, tabs, and newlines from the beginning and end of strings. You can try the following function instead:

Code: Select all

fd.field('RTE').control()._el().find('div.ms-rtestate-write').text().replace(/\W/g, '')
It removes all non-printable characters from the string.

Re: Evaluate undefined for a field

Posted: 12 Nov 2014
by JHMark
That's the one! Works perfectly, Thanks!