- 插件的使用方法
- 场景描述:打印页面时,要打印出选中的下拉列表值
2-1. 项目使用技术较旧,页面是jsp语法,下拉列表是jsp语法遍历加载
<div class="col-xs-2">
<label for="demandType" class="control-label">部件需求<span style="color:red;vertical-align:middle;">*</span></label>
</div>
<div class="col-xs-4">
<select class="form-control input-sm" name="demandType" id="demandType" datatype="*" ignore="checked">
<c:forEach var="item" items="<%=DemandTypeEnum.values()%>">
<option value="${item.type}">${item.value}</option>
</c:forEach>
</select>
</div>
2-2. DOM加载完成后,jQuery初始化 选中列表值
$(document).ready(function() {
// ${repairApplication.demandType} 是后端返回到jsp页面的参数
let dem = '${repairApplication.demandType}';
// 设置默认值为dem,让页面下拉列表选中
$("#demandType").val(dem);
}
2-3 点击按钮,触发打印功能,调用浏览器的打印预览功能
function downPDFClick() {
clearInterval (timer);
timer = setTimeout(() => {
$("#printPDF").jqprint({
debug: false,
printContainer: true,
operaSupport: true
});
}, 300)
}
2-4 打印预览中,下拉列表的值是默认是选中第一个,不是jQuery设置的dem值
解决方案:
把设置下拉列表某个值,改成选中下拉列表某个值
$("#demandType").val(dem);
改为
$("select[name='demandType'] option[value='"+dem+"']").attr("selected","selected");
2-5 得出结论: jqprint打印预览时,预览的是下拉列表选中的值,而不是下拉列表设置的值