Use Of PreSaveAction Function on List Forms In SharePoint 2013

Posted: December 25, 2015 in SharePoint2013

Introduction
In this Article we explore how to use PreSaveAction() method in SharePoint list form in SharePoint 2013.PreSaveAction() is a JavaScript function which helps us to do something before the item will be saved. PreSaveAction function allows to override functionality when Save button is clicked.PreSaveAction function executes the code written for validation on click of save button. I just want to add one thing, you should override PreSaveItem – this is a SharePoint built in function. Instead, like mentioned above – override/create PreSaveAction.

Scenario

I have a default SharePoint list form with save or cancel, I want the user to attach files while creating a new item. When user clicks on save button, page post back happens and if validation fails, validation message is displayed.

Solution

I used the following code with PreSaveAction function for validation to display messages on Save button click and Save button, attach runtime custom handler. Default Save button calls PreSaveItem method, which in turn calls PreSaveAction for any validations.

  1. $(document).ready(function ()
  2. {
  3.     ProducerReferral();
  4.     attachEventHandlers(); // function for checking the duplication of files
  5.     $(‘input[value=Save]’).click(function ()
  6.     {
  7.         PreSaveTest();
  8.     });
  9. });
  10. function PreSaveTest()
  11. {
  12.     PreSaveAction();
  13. }
  14. function PreSaveAction()
  15. {
  16.     if ($(“#idAttachmentsRow”).css(“display”) == “none”)
  17.     {
  18.         $(“#part1 > h4”)[1].innerHTML += “<span style=’margin-left: 40px;’ class=’ms-formvalidation ms-csrformvalidation’>Please Attach Files.</span>”;
  19.         returnVal = false;
  20.     }
  21.     else
  22.     {
  23.         return true;
  24.     }
  25. }

This method is called when save button is clicked and messages are displayed in case of File not attached.

Title

Note: If you are using “$(document).ready” in your code, make sure PreSaveAction function is written outside this block, as in above code or else PreSaveAction method will not be called.

Reference

 

Advertisements
Comments
  1. Artur T says:

    Many thanks for this note :” If you are using “$(document).ready” in your code, make sure PreSaveAction function is written outside this block, as in above code or else PreSaveAction method will not be called.” It’s obvious but sometimes something like this at first sight does not seem to have much to do with error but it should have 🙂 BTW. If we call PreSaveAction method inside “$(document).ready” statement will fire but skip even if return false.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s