我正在开发一个简单的基于表单的发票/收据 Web 应用程序,该应用程序需要使用signature_pad获取客户签名。由于熟悉和内置的用户身份验证脚手架,我的应用程序使用Laravel 5.4 。
作为概念证明,我尝试将 signature_pad 示例中的代码嵌入到我的 Blade 模板中,但运气不佳 - 没有进行绘图。此外,与按钮关联的操作/事件侦听器也不起作用。
代码的直接 html 文件变体会产生一个功能性的 signature_pad(见下文),所以我知道编写的代码可以正常工作 - 问题似乎与 Laravel、Vue、Blade 或内部处理 JS 的方式有关的模板。
在 Laravel 5.4 或类似的刀片模板中使用 signature_pad 的任何见解或专业知识都值得赞赏。谢谢你。
<!DOCTYPE html>
<html>
<head>
<title>Testing</title>
</head>
<body>
<div class="wrapper">
<canvas id="signature-pad" class="signature-pad" width=400 height=200></canvas>
</div>
<div>
<button id="save">Save</button>
<button id="clear">Clear</button>
</div>
</body>
<script src="https://cdnjs.cloudflare.com/ajax/libs/signature_pad/1.5.3/signature_pad.min.js"></script>
<script>
var signaturePad = new SignaturePad(document.getElementById('signature-pad'), {
backgroundColor: 'rgba(255, 255, 255, 0)',
penColor: 'rgb(0, 0, 0)'
});
var saveButton = document.getElementById('save');
var cancelButton = document.getElementById('clear');
saveButton.addEventListener('click', function (event) {
var data = signaturePad.toDataURL('image/png');
// Send data to server instead...
window.open(data);
});
cancelButton.addEventListener('click', function (event) {
signaturePad.clear();
});
</script>
</html>