5

我正在使用这个插件

我的应用程序使用 ajax 调用提交签名。在成功的 ajax 返回时,我想禁用用户的任何签名更改。我尝试的最后一件事是跟随,但签名板仍然处于活动状态并绘制线条(听众 afe 未分离):

   function showResponse(itemJson, statusText, xhr, $form) {

    if (itemJson.status == 'success') {

        debugger;

        $($form.find('.clearButton')).remove();
        $($form.find('button')).remove();

        $form.find('input').attr('readonly', 'readonly');

        var api = $form.signaturePad();
        var sig = api.getSignatureString();

        api.updateOptions({displayOnly: true})
//        $form.signaturePad({displayOnly: true}).regenerate(sig);

    }
}

有谁知道如何更新现有的签名板,所以它变成禁用模式?

4

4 回答 4

4

通常我使用:

api.off();

它适用于我的软件

于 2018-10-25T11:43:09.633 回答
1

对于在使用 React 包 react-signature-canvas 时发现此线程的任何人;你可以通过调用禁用它padRef.current.off().

这是一个显示给定签名 (sigValue) 并被禁用的 pad 的基本示例

const SignatureDisplay = ({ sigValue }) => {
  const padRef = useRef({})

  useEffect(() => {
    padRef.current.fromData(sigValue || [])
    padRef.current.off()
  }, [])

  return (
    <SignaturePad
      ref={padRef}
      canvasProps={{
        height: 200,
        width: 400
      }}/>
  )
}
于 2020-09-10T14:24:34.690 回答
0

添加到 jquery.signaturepad.js:

  $.extend(self, {
    /**
     * A property to store the current version of Signature Pad
     */
    signaturePad : '{{version}}'
...
    , disableCanvas : function () { disableCanvas() }    

    , clearAndDraw : function () { drawIt() }
...

要使用它:

$sigPadElem.signaturePad().disableCanvas();

或者:

$sigPadElem.signaturePad().clearAndDraw();

我想知道这个功能是否可以在不修改插件的情况下完成?(顺便说一句,我无法给自己赏金......)

于 2016-10-12T04:30:38.090 回答
-2

尝试这个

$('.sigPad').signaturePad('disable');
于 2015-11-30T12:36:07.047 回答