Evaluate undefined for a field

Discussions about Forms Designer for SharePoint 2010.
Locked
ChrisMBS
Posts: 4
Joined: Wed Jun 19, 2013

21 Apr 2013

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?

User avatar
Dmitry Kozlov
Site Admin
Posts: 1524
Joined: Thu Jun 07, 2012

22 Apr 2013

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

JHMark
Posts: 9
Joined: Tue May 14, 2013

10 Nov 2014

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.

User avatar
Dmitry Kozlov
Site Admin
Posts: 1524
Joined: Thu Jun 07, 2012

11 Nov 2014

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');
}

JHMark
Posts: 9
Joined: Tue May 14, 2013

11 Nov 2014

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.

User avatar
Dmitry Kozlov
Site Admin
Posts: 1524
Joined: Thu Jun 07, 2012

12 Nov 2014

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.

JHMark
Posts: 9
Joined: Tue May 14, 2013

12 Nov 2014

That's the one! Works perfectly, Thanks!

Locked
  • Information
  • Who is online

    Users browsing this forum: No registered users and 8 guests