我有以下JS代码。 问题是表单总是在then函数之前提交。 我希望表单只能在then函数之后提交。
我该怎么做?感谢
$('#form').submit(function (e) {
e.preventDefault();
html2canvas(document.getElementById('uty'), {
useCORS: true,
}).then(function (canvas) {
var img = canvas.toDataURL("image/png");
document.getElementById('input').value = img;
});
});
答案 0 :(得分:1)
要解决此问题,您可以在外部form
处理程序函数中存储submit
元素的引用,然后在submit()
块中调用then()
。像这样:
$('#form').submit(function (e) {
e.preventDefault();
var form = this;
html2canvas(document.getElementById('uty'), {
useCORS: true,
}).then(function(canvas) {
var img = canvas.toDataURL("image/png");
document.getElementById('input').value = img;
form.submit();
});
});
注意我正在调用DOM submit
函数,而不是jQuery。 jQuery将重新运行提交处理程序,DOM不会。