实现导出功能时,需要整合查询条件,需要将查询的列表复制一份,生成一个新的表单,默认action提交信息,代码如下:
function exportData() { try { var exportForm = $("#searchForm").clone(true).attr("id", "exportData"); var select = $("#searchForm").find(‘select‘); var selectRes = $(exportForm).find(‘select‘); for (var i = 0; i <select.length ; i++) { $(selectRes[i]).val($(select[i]).val()); } // var exportForm = $("#searchForm").clone(true).attr("id", "exportData"); exportForm.attr("action", "${ctx}/cop/coe/exportData"); exportForm.unbind(); $(document.body).append(exportForm); exportForm.submit(); } catch (e) { console.log(e); } finally { exportForm.remove(); } }
在改造的过程中,发现
$("#searchForm").clone(true)无法select的value拷贝到新的表单对象中,但是属性已经拷贝进来了。通过打印数据找到了解决方法
遍历原始表单组件,找到所有的select组件,获取到value之后再将数据赋值到新的拷贝对象中,这样就解决了
$("#searchForm").clone(true)带来的弊端。
var select = $("#searchForm").find(‘select‘);
var selectRes = $(exportForm).find(‘select‘);
for (var i = 0; i <select.length ; i++) {
$(selectRes[i]).val($(select[i]).val());
}
jq拷贝表单$("#searchForm").clone(true),无法将select2数据value拷贝的问题
原文:https://www.cnblogs.com/lidedong/p/14607314.html