【发布时间】:2020-03-13 14:42:09
【问题描述】:
我试图在提交表单之前调用一个函数。 这是html
<form id="form_email" method="POST" name="form_email">
<h2>Quel est votre email ?</h2>
<hr>
<div id="mail">
{{form_email.mail}}
</div>
<button type="button" name="Envoi" onclick="hide_generate();">Télécharger</button>
</form>
这里是js函数
function hide_generate(){
if ( document.getElementById('mail').value == "" ) {
alert("Fill All Fields !");
} else {
document.getElementById('abc').style.display = "none";
generatePDF();
document.getElementById('form_email').submit();
}
}
function generatePDF() {
var element = document.getElementById('content');
var opt = {
margin: 1,
filename: 'rapport_analyse.pdf',
image: { type: 'jpeg', quality: 0.98 },
html2canvas: { scale: 2 },
jsPDF: { unit: 'in', format: 'A4', orientation: 'portrait' }
};
// New Promise-based usage:
html2pdf().from(element).set(opt).save();
}
问题是表单直接提交,没有调用generatePDF()函数... 感谢您的帮助!
【问题讨论】:
-
您为
div设置了一个IDmail。并尝试访问div的值。document.getElementById('mail').value。 注意div没有value。您需要使用innerHTML或innerText -
附带说明,您应该处理提交事件,而不是单击按钮,因为用户可以通过按 Enter 提交表单。
标签: javascript html forms function