我正在使用此plugin。
我的应用程序使用ajax调用提交签名。在成功的ajax返回时,我想禁用用户的任何签名更改。我尝试的最后一件事是跟随,但签名板仍然是活动的并且绘制线条(听众没有分离):
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);
}
}
有谁知道如何更新现有的signaturePad,所以它会变成禁用模式?
答案 0 :(得分:1)
添加到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();
我想知道是否可以在不修改插件的情况下完成此功能? (顺便说一句,我无法给自己奖励......)
答案 1 :(得分:1)
对于使用React包时找到该线程的任何人,react-signature-canvas;您可以通过调用padRef.current.off().
这是显示给定签名(sigValue)并被禁用的便笺本的基本示例
const SignatureDisplay = ({ sigValue }) => {
const padRef = useRef({})
useEffect(() => {
padRef.current.fromData(sigValue || [])
padRef.current.off()
}, [])
return (
<SignaturePad
ref={padRef}
canvasProps={{
height: 200,
width: 400
}}/>
)
}
答案 2 :(得分:0)
我通常使用:
api.off();
它在我的软件中有效
答案 3 :(得分:-2)
试试这个
$('.sigPad').signaturePad('disable');