Client side event handlers in SharePoint
In addition to server side Event Model, SharePoint also provides client side event handling capabilities when working with List Forms.
Let’s see briefly how it works. In List Forms pages Save button click handler triggers PreSaveItem function ,
PreSaveItem function is declared in forms.js:
PreSaveAction function from another hand, is a user defined function that allows to override standard behavior for a Save button handler, so in terms of server side event model it is a binding mechanism.
I find this mechanism pretty convenient for implementing custom client side validation in List Forms, the following example demonstrates how to implement client side validation for Email field in Contacts list:
Client forms validation in SharePoint 2013
In SharePoint 2013 as part of Client-Side Rendering (CSR), there is SPClientForms.ClientValidation namespace (clientforms.js) that contains types and objects for performing client side validation in List Forms. For example,
SPClientForms.ClientValidation.RequiredValidator object is intended for evaluating the value of an field control to ensure that the user enters a value (it is invoked for a fields when SPField.Required property is set to True):
Below is provided a complete example that demonstrates how to implement client-side validation for Email field in Contacts list:
- CustomClientValidation.EmailValidator object implements a custom validation for Email field
- since Email field is a standard Text Field, the rendering of field control is reused, only custom validator is registered for a field (see function EmailField_Edit for a details)