如何在页面重新加载后输出jsignature
How to output jsignature after page reload
我正在使用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时也可以使用。
相关文章:
- 如何使用url加载程序在webpack中导入多个图像
- 如何在生成下载文件时显示加载动画
- 有没有任何方法可以将控制器从文件加载到ui路由器$stateProvider中
- 无法在通过jQuery的ajax加载的页面中执行javascript
- Emberjs应用程序加载在除Index之外的所有路由上
- 在chrome.tabs.onCreated之后加载HTML页面
- 单击F5时如何停止页面加载
- HTML5音频加载和播放获胜'我不能在iPad上工作
- 跟踪在页面加载时应用内联样式的JavaScript
- 在使用Polymer'加载所有json文件后执行方法;s的核心ajax
- jQuery Lazy加载动画滚动
- Html页面上的多个Base64图像和平滑加载
- 如何创建带有插槽的vue js组件预加载程序
- Webpack/Rect:遵循egghead.io教程,但出现错误:您可能需要一个合适的加载程序来处理此文件类型
- 如何使该数据在所有元素中加载
- Chrome扩展没有't在重新加载之前考虑期权价值
- 使用javascript在Flash中加载外部图像
- Ajax文件加载和<输入>文件加载
- 使用javascript函数在页面初始化后加载jquery
- 如何在页面重新加载后输出jsignature