如何在jsPDF生成PDF时提取div内非空输入框的有效值
问题原因
你代码里的判断条件存在拼写错误,你写的input.val().lenght>0中的lenght是错误拼写,正确的属性名是length,这个错误直接导致判断条件永远不成立,所以永远不会进入生成PDF内容的逻辑,最终导出的PDF自然是空的。
你之前测试的input.val().>0属于语法错误,input.val()!==''没生效,要么是拼写错误没修正,要么是输入内容是全空格,用全等判断空字符串不触发。
正确判断方案
除了修正拼写外,建议对输入值做去空格处理,避免用户输入全空格的无效内容也被导出,判断逻辑可以参考如下写法:
// 先获取输入值并去除首尾空格 const inputVal = input.val().trim() // 判断非空 if (inputVal.length > 0) { // 生成PDF的业务逻辑 }
修正后的完整代码
var doc = new jsPDF(); var i = 1; $("div#home :input[type=text]").each(function(){ i++; var input = $(this); var inputVal = input.val().trim(); // 修正拼写,增加去空格逻辑 if(inputVal.length > 0){ console.log(input); var text = input.attr('placeholder') + ': ' + inputVal; doc.setFontSize(10); doc.text(10, (i*8) + 10, text + "\n"); } }); doc.save('a4.pdf')
内容的提问来源于stack exchange,提问作者Master
相关产品推荐
相关产品推荐

