Embedding Signature Pad in Nintex Form

  • 24 January 2016
  • 59 replies
  • 331 views


Show first post

59 replies

Badge +3

Hi,

 

I got the signature to store as an image by following the below instructions (which am colleague pointed out)

Make sure the text flied s multiple line "plain text" and with the nintex form put "nf-form-input" as the CSS class under formatting (you might also need to copy the jsignature.js file to your site as well)..

 

https://community.nintex.com/community/tech-blog/blog/2016/02/26/extending-nintex-mobile-signature-control-to-desktopbrowser

 

Use the code in comments by Wisam Fawzi

 

NWF$(document).ready(function() { 

// Strings to be translated   

var NoSignatureMessage = 'No signature';   

var AddSignatureMessage = 'To add a signature please open this form in Nintex Mobile.';// Find all the signature controls (the plain multiple line text field that you named "Signature" or "signature")   

NWF$("div.nf-filler-control[data-controlname^='Signature']").add("div.nf-filler-control[data-controlname^='signature']").each(function () {   

    // Find the container element which houses the actual UI the user sees.   

    var signatureUI = NWF$(this).find("div.nf-filler-control-inner");       

    var signatureInputo365ViewMode = NWF$(signatureUI).find("div");                     //View Mode

    var signatureInputo365EditMode = NWF$(signatureUI).find("textarea");                //Edit Mode

    var signatureInputOnPremBothModes = NWF$(signatureUI).find("input[type=text]");   

    var signatureContent;   

    

    

    // Get the actual base64 value of the signature.   

    if (signatureInputOnPremBothModes.length != 0)   

        signatureContent = signatureInputOnPremBothModes.val();   

    else   

        signatureContent = signatureInputo365ViewMode.html();       

 

    // Hide all existing Nintex Forms UI elements.   

    signatureUI.css('visibility', 'hidden'); 

    

    var startIndex = signatureContent.indexOf(">") + 1;

    var stopIndex = signatureContent.lastIndexOf("<");

    var storedSignatureContent = signatureContent.substring(startIndex,stopIndex);   

 

    // If new form

    if(storedSignatureContent == "")

    {   

        // If not in edit mode then show image   

        if (signatureInputo365EditMode.length == 0 || NWF$(signatureInputOnPremBothModes).is(':disabled')) {   

            if (signatureContent != "") {   

                // Insert the signature image.   

                signatureUI.after("<img id='img' height='" + NWF$(this).height() + "' width='" + NWF$(this).width() + "'  src='data:image/png;base64," + signatureContent + "' />");   

            } else {   

                // Insert a message saying no signature.   

                signatureUI.after('<div>' + NoSignatureMessage + '</div>'); 

            }   

        }   

        else {   

            // Insert a message saying its not supported in browser.  

            

            signatureUI.after('<div id="signature"></dv>'); 

            var sigdata = $('#signature').jSignature(); 

        }  

    }

    else // Existing form

    {

        signatureUI.after("<img id='img' height='" + NWF$(this).height() + "' width='" + NWF$(this).width() + "'  src='data:image/png;base64," + storedSignatureContent + "' />");

    }

});  

}); 

  

function setControlValue(){ 

  var str = $('#signature').jSignature('getData'); 

  NWF$('#'+jsignature).val(str.substr(str.indexOf(",") + 1)); 

}

Hi,

The jsignature.min.js is working great with my Nintex form (SharePoint 2013 on Premises). I'm able to sign the form with my mouse and with my finger on a tablet. The signature is saved to the corresponding field and is also visible in read mode. But I'm unable to get my Topaz sign pad running!

I've installed the latest driver and a Topaz test software to see if the sign pad is generally working, everything's fine there. But I'm unable to sign my Nintex form with the Topaz sign pad.

Does any one know how to get this running?

Thank you!

Badge +4

Hi Gerhard,

I have not been able to incorporate the Topaz sign pad either.  I've contacted the company and they are not very helpful in providing working code for Nintex forms/Sharepoint too.   I'm back to working with the jSignature JS code.

If you have been able to incorporate the Topaz sign pad please share.  

Thank you. 

Pam Lewis

Badge +3

Can you tell me how to reference the JQuery Library? Is this something I have to download and store in site assets?

Userlevel 7
Badge +17

Yes, you will need to have a copy in your site assets, it works better than referencing a CDN. See the section in the article that describes this portion and see the image 

Include the "Custom Javascript" and "Custom Javascript Includes" as shown below, i have downloaded and saved the "jSignature.min.js" library to the SiteAssets folder of my Sharepoint site.

Badge +3

I have been able to get the signature pad to work, however it is not saving the data in the signature text field, and when I open the form it is not displaying the signature. I have followed the screenshots. Any ideas why the signature data is  not being captured?

Userlevel 7
Badge +17

Is it saving and not displaying or both? Check the column if any information is stored in the column. If no data, make sure the single line of text column is connected to the SharePoint 'Signature' column. And make sure all CSS/javascript capitalizations match throughout when trying to match and locate the controls.

Badge +3

Hi Andrew,

 I checked the column and connection. I am able to sign the form  but it does not save any data in the signature field.

I'm wondering if the variable is not configured correctly?

Store Client ID in JavaScript variable     sig

Badge +1

I am using SP 2019 and having issues with the signature control rendering.


 


1. Downloaded the added the jSignatureForm.xml.zip from the original post. Unzipped and only one file was listed: jSignatureForm.xml. 


2. Uploaded jSignatureForm.xml to the Site Assets library on the site with the Nintex form needing the signature control.


3. Created the new list with a classic form (will not be using mobile; need to use a mouse for signature via browser form).  


4. Created Multi-line text field, named "Signature", and kept "Rich text" setting for field.


5. Opened Nintex Forms designer and added the new multi-line "Signature" control to the form.


6. In Signature control settings, in the Advanced section, set Store Client ID in JavaScript variable=Yes and Client ID JavaScript variable name=jsignature.


7. In Save button control settings, in the Advanced section, set Client click=setControlValue();.


8. Published the form.


 


When I open a new item form, the control isn't even appearing. I see the label for the control, but no multi line of text field on the form.  What am I missing?

Reply