jQuery选择复选框时,文本存在,隐藏未选中的行从打印
jQuery Select Checkbox When Text Exists, Hide Unselected Rows from Print
我有一个动态生成的表,其中每行包含一个复选框、一些数据和一个文本输入字段。
我想在选定行的文本框中输入文本后自动检查复选框。最后,当按下"Finish"按钮时,我希望隐藏任何未选择的行,不打印。最终输出将是只包含选定行(即复选框中有复选的行)及其值的表。
下面是隐藏未选中行的css print类:
<style type="text/css" media="print">
.grid .hidden tr {
display:none;
}
</style>
HTML:
<table id="data" class="grid">
<thead>
<tr>
<th> </th>
<th>Part Number</th>
<th>Description</th>
<th>Qty to Order</th>
</tr>
</thead>
<tbody>
<tr>
<td><input type="checkbox" class="check"></td>
<td>1234</td>
<td>Description data goes here</td>
<td><input type="text" class="inputData"></td>
</tr>
<tr>
<td><input type="checkbox" class="check"></td>
<td>3454</td>
<td>Description data goes here</td>
<td><input type="text" class="inputData"></td>
</tr>
<tr>
<td><input type="checkbox" class="check"></td>
<td>6787</td>
<td>Description data goes here</td>
<td><input type="text" class="inputData"></td>
</tr>
</tbody>
</table>
<button id="clicker">Finish</button>
最后,这里是jQuery。这是在文本字段中输入文本时选择所有复选框,而不仅仅是那一行的复选框(我不理解),而不是将"隐藏"类分配给没有复选框的行-类根本没有被分配。
$(document).ready(function() {
//Check for input in text field
$('#data > tbody > tr').each(function() {
$(".inputData").change(function() {
if ($(this).val().length > 0) {
$(".check").prop("checked",true);
} else {
$("tr").addClass("hidden");
}
});
});
$("#clicker").click(function() {
window.print();
return false;
});
});
</script>
我构造这个的逻辑是为了确保我们只选择id为data的表中的行。第一个函数将遍历查看文本字段的每一行,如果该字段的长度大于0,则选中该框。否则,将类赋值为"hidden",这将阻止它打印。最后,简单地为按钮分配一个点击事件。
感谢您的帮助。
这是一个jsFiddle
这将根据输入是否具有值来选中或取消选中适当的框:
$(".inputData").on('input', function () {
var checkbox= $(this).closest('tr').find('[type="checkbox"]');
checkbox.prop('checked', $(this).val());
});
不需要在each()
方法中。
隐藏未选中复选框的所有行:
$('[type="checkbox"]:not(:checked)').closest('tr').hide();
把它放在$("#clicker").click()
函数中是有意义的。
更新小提琴
相关文章:
- 如何打印隐藏文章(Css/JQuery)
- 隐藏html页面中的某些字段以用于打印布局中的页眉/页脚
- 通过jquery打印隐藏数据
- 使用显示/隐藏单选按钮将数组打印到 Div
- 如何使用JavaScript或jQuery打印页面时隐藏URL
- 如何使用 LiveCycle Designer 在 PDF 中打印两次隐藏页面
- 在 extjs 3.3.1 列模型中打印未隐藏的列
- AngularJS 打印隐藏分区
- html@MEDIA print{},隐藏标记会在打印中留下空白
- 打印对象的所有隐藏属性
- 打印隐藏的图像,每个图像到PDF的不同页面
- Angular:删除页面打印版本的ng隐藏/显示
- 显示/隐藏打印按钮
- 在表行上设置隐藏类会导致colspan在打印窗口中不起作用
- 使用“打印”按钮忽略表格单元格中的隐藏元素
- jQuery选择复选框时,文本存在,隐藏未选中的行从打印
- 数据隐藏行为在打印预览我的应用程序
- 如何在使用JavaScript函数打印时打印隐藏的DIV
- 页面加载时隐藏,打印时显示
- 只打印隐藏对象标签的内容