我正在使用签名板 JavaScript库让人们对文档进行数字签名(这只是为了测试,没有任何法律约束力等),但我很难将签名结果从 JS 传递回 Flask/Python。
以下代码是我的 HTML 表单,它form.stu_name
完美地提交了字段,甚至触发了我的 JS “提交”(意味着代码执行并打开一个显示签名的新窗口)但我不确定如何提交 JS 结果回来到 Flask - 有关更多信息,请参见第二个代码块示例。
<div class="container">
{% from "_formhelper.html" import render_field %}
<form id="upload-form" method="POST" action="/sixth_form/" enctype="multipart/form-data">
<dl>
{{render_field(form.stu_name)}}
</dl>
<p>Student Signature</p>
<div class="wrapper">
<img src="{{ url_for('static', filename='images/grey.jpeg') }}" width=400 height=200 />
<canvas id="signature-pad" class="signature-pad" width=400 height=200></canvas>
</div>
<div>
<button id="clear" type="Button">Clear</button>
</div>
<br>
<p><input id="finalsub" type="submit" value="Submit"></p>
</form>
</div>
这是脚本本身,运行时它会打开一个新窗口,其中签名的结果显示为 URI 编码图像(那部分很好,我可以稍后在 Python 中对其进行解码),我需要帮助 - 而不是打开一个新的我想将图像提交回 Flask,然后将其存储在一个变量中,以便我可以将其附加到另一个图像。我对JS不是很了解,所以非常欢迎任何建议!
<script>
var signaturePad = new SignaturePad(document.getElementById('signature-pad'), {
backgroundColor: 'rgba(255, 255, 255, 0)',
penColor: 'rgb(0, 0, 0)'
});
var saveButton = document.getElementById('finalsub');
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>