如何在页面重新加载后输出jsignature

How to output jsignature after page reload

本文关键字:加载 jsignature 输出 新加载      更新时间:2023-09-26

我正在使用jsignature插件(http://willowsystems.github.io/jSignature)允许用户对表单进行"签名"。这一切都正常工作,但我正在尝试在页面重新加载到同一画布后输出签名,以便在必要时对其进行进一步编辑(只有在表单验证因任何原因失败时才会发生这种情况)。

我不能理解的是,如果我在重新加载页面之前重新绘制,我可以正确地重新绘制它,但如果我在再次加载后尝试,我会得到一个"错误:jSignature无法找到格式为'undefine'的导入插件"错误,它将不起作用。

因此,如果我在提交按钮上使用以下JS代码,它会正常工作(清除画布,然后重新绘制):

    $("#signature").jSignature({'UndoButton': true});
    $('#qmembershipsubmit').click(function(e) {
        var datapair = $('#signature').jSignature("getData","base30");
        var datastr="data:" + datapair.join(",");
        $("#signature").jSignature("reset");
        alert('should be cleared');
        $("#signature").jSignature("importData",datastr);
        return false;
    });

然而,我不想进行JS表单验证,而是希望通过表单传递值,然后在必要时在下一页上重用它。然而,当我使用以下代码时(因此它使用存储在#signature_capture2中的字符串运行importData命令),我会出现找不到导入插件的错误:

    $("#signature").jSignature({'UndoButton': true});
    if($('#recreatesig').val()=='1')
    {
        alert('recreate');
        $("#signature").jSignature("importData",$('#signature_capture2').val());
    }
    $('#qmembershipsubmit').click(function(e) {
        var datapair = $('#signature').jSignature("getData","base30");
        var datastr="data:" + datapair.join(",");
        $("#signature_capture2").val(datastr);
    });

datastr的值与signature_capture2中存储的值匹配,所以我一辈子都看不出为什么它不起作用,因为它确实在做同样的事情(而且它在同一个页面上重新加载,所以两者都包含相同的插件/js脚本)。

如果有人能透露任何信息,我们将不胜感激。

干杯,

Dave

我已经成功地使用了jSignature("getData","default"),这可以在base64中获取数据,可以在img标签上使用,并且在使用importData时也可以使用。