Using buttons to "sign"

Forums Dynamic Forms for SharePoint Using buttons to "sign"

Tagged: 

This topic contains 9 replies, has 2 voices, and was last updated by  Therman 1 week, 4 days ago.

  • Author
    Posts
  • #27237

    Therman
    Participant

    Is it possible for me to create a button that someone can press and then have that event capture the current user’s username in a field?
    In other words, I’m looking for a make-shift way for a user to digitally sign forms.

  • #27242

    Alexander Bautz
    Keymaster

    Just add a button in a HTML section and have it call this function:

    function signForm(){
      var user = spjs.utility.userInfo(_spPageContextInfo.userId);
      setFieldValue("NAME_OF_YOUR_FIELD", user.Title);
    }

    Alexander

  • #27244

    Therman
    Participant

    Thanks!

    When I put this in the HTML:
    `<button onclick=”signForm()”>Click to Sign</button>’

    And put this in the custom JS:
    ‘function signForm(){
    var user = spjs.utility.userInfo(_spPageContextInfo.userId);
    setFieldValue(“DirectorSignature”, user.Title);
    }’

    It works, but then the screen refreshes and I lose the signature. How do I stop the refresh?

  • #27246

    Alexander Bautz
    Keymaster

    Sorry, I should have specified it, but the <button> will cause a form submit and you must either return false, or better use an input like this:

    <input type="button" onclick="signForm()" value="Click to Sign" />

    Alexander

  • #27248

    Therman
    Participant

    worked like a charm. thanks!

  • #27250

    Therman
    Participant

    Hey Alex, is it possible to maybe make the signature a username and date/time?
    Maybe like this” “Last Name, First Name – 1 OCT 2019 – 11:26 AM”.

  • #27264

    Alexander Bautz
    Keymaster

    You can do it like this:

    function signForm(){
      var user = spjs.utility.userInfo(_spPageContextInfo.userId);
      setFieldValue("Title", user.Title + " " + new Date().toLocaleString(_spPageContextInfo.currentUICultureName));
    }

    Alexander

  • #27279

    Therman
    Participant

    Worked perfectly. Thanks.

    I have four buttons for signature on my form.
    Should I create 4 functions and apply to each button? Like this:

    
    
    function signDir(){
      var user = spjs.utility.userInfo(_spPageContextInfo.userId);
      setFieldValue("DirectorSignature", user.Title + " " + new Date().toLocaleString(_spPageContextInfo.currentUICultureName));
    }
    
    
    function signG1(){
      var user = spjs.utility.userInfo(_spPageContextInfo.userId);
      setFieldValue("G1_Signature", user.Title + " " + new Date().toLocaleString(_spPageContextInfo.currentUICultureName));
    }
    
    
    function signG8(){
      var user = spjs.utility.userInfo(_spPageContextInfo.userId);
      setFieldValue("G8_Signature", user.Title + " " + new Date().toLocaleString(_spPageContextInfo.currentUICultureName));
    }
    
    
    function signCos(){
      var user = spjs.utility.userInfo(_spPageContextInfo.userId);
      setFieldValue("CoS_Signature", user.Title + " " + new Date().toLocaleString(_spPageContextInfo.currentUICultureName));
    }

    Or is their a best practice to write all of this?

    • This reply was modified 2 weeks ago by  Therman.
    • This reply was modified 2 weeks ago by  Therman.
  • #27284

    Alexander Bautz
    Keymaster

    This looks OK to me. You could of course use one function and pass a key to it as an argument, and then switch on the four different keys inside the function. It is easy to read and understand like you have written it now so just keep it like it is.

    Alexander

  • #27316

    Therman
    Participant

    good deal. Thanks!

You must be logged in to reply to this topic.