Evaluate undefined for a field
Posted by ChrisMBS - Apr 21 ’13 at 08:03
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?
-
DmitryAdminMember for: 10 years 7 months 28 days
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://formsdesigner.blogspot.ru/2013/04/getting-and-setting-sharepoint-form.html
-
JHMarkMemberMember for: 9 years 8 months 23 days
[#1]: 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.
-
Dmitry KozlovAdminMember for: 9 years 4 months 17 days
[#2]: Hi,
You can check whether the Enhanced Rich Text field is empty following way:
if (!fd.field('RTE').control()._el().find('div.ms-rtestate-write').text().trim()) { alert('RTE field is empty'); }
-
JHMarkMemberMember for: 9 years 8 months 23 days
[#3]: 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.
-
Dmitry KozlovAdminMember for: 9 years 4 months 17 days
[#4]: trim() function removes all spaces, tabs, and newlines from the beginning and end of strings. You can try the following function instead:
fd.field('RTE').control()._el().find('div.ms-rtestate-write').text().replace(/\W/g, '')
It removes all non-printable characters from the string.
-
JHMarkMemberMember for: 9 years 8 months 23 days
[#5]: That's the one! Works perfectly, Thanks!
-
acquiroMemberMember for: 2 years 8 months 12 days
-
retrogressMemberMember for: 2 years 8 days
I completely resolved my question when I read this post, thanks to the author for the very detailed description. I wrote my review on the novoresume review, you can go in and read. Thank you very much for your attention in your time.