我有一个表单,在提交之前需要运行两个函数。
一个函数将画布图像转换为数据网址,因此需要几秒钟。
主要问题是表单在函数完成之前提交,因此没有数据发送到服务器。
我尝试了各种代码排列,但都失败了。
我已经尝试了
$(document).ready(function() {
$('#form').submit(function(e) {
e.preventDefault();
function_one();
function_two();
$('#form').submit();
});
});
我已经尝试了
$(document).ready(function() {
$('#submit').click(function(e) {
e.preventDefault();
function_one();
function_two();
$('#form').submit();
});
});
他们都在没有完成功能的情况下提交表格。有人可以帮忙吗?
答案 0 :(得分:0)
这种情况正在发生,因为函数是异步调用的。最快和最简单的解决方法是添加一个setTimeout
函数,它只能暂停一小段时间。这可能会使您的问题最容易解决。
其他方面,您需要添加成功事件以将$('#form').submit();
置于其中。
答案 1 :(得分:0)
您可以使用PROMISE.JS。你可以添加promisejs添加一个链并等待其他函数等待先前的承诺。您可以参考示例here