【JS新手教程】LODOP打印复选框选中的内容

在html中,复选框是常见的使用之一,本文介绍如何获取选中的复选框的值,并用LODOP打印。
给需要为一组的复选框,复选框的checkbox设置相同的name属性,设置不同的id,然后设置需要的value值。
document.getElementsByName(设置的name的值);返回的是指定该name名称的对象的集合
获取该集合的长度用.length,在JS和很多其他计算机语言中.length都是长度,也就是个数,是自然数,和索引从0开始数不同,长度是实际的个数。例如本文例子中,name为hob的集合的length长度是5,也就是页面的5个name为hob的checkbox。
获取某个checkbox是否被选中,用checked属性判断,获取某个checkbox的值,用.value获取。

该博文用了两种方法,第一种:name获取组,通过id逐个赋值
1.每个checkbox加name和id,name设置一样的为一组。
2.根据name获取这一组的checkbox对象,循环通过id赋值。
第二种:一组放一个div,获取该div中全部input,通过数组下标,逐个获取对象的值,赋值。
1.把需要为一组的checkbox放一个div,给div取个名。
2.获取div全部的input对象,通过数组下标循环赋值。

简单点说,该博文用的是两种获取所有对象的方法,两种获取单个对象的方法。
获取所有对象的方法:1.通过document.getElementsByName,获取全部同name名的对象。
2.div对象.getElementsByTagName,通过div分区,所有checkbox用div包裹起来,获取全部input对象
获取一个对象的方法:1、设置不同的id,用id获取。2、用数组下标。

如图,页面放5个复选框,然后循环判断每个复选框是否选中,选中的就给字符串strhob加字符串,最后返回加好后的字符串。
页面有个文本框,输入的是名称,然后把名称和选择的打印项组合起来,赋给LODOP的一个文本项。第二组的赋给第二个打印项。
都拼接起来给一个text可以,给两个也可以,这里既然是两组不同的,就给两个text纯文本打印项。
测试代码:

<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>WEB打印控件LODOP</title>
<script language="javascript" src="LodopFuncs.js"></script>
</head>
<body>
输入选择人名:<input type="text" id="T1"><br>
<hr>
选择号:
<input type="checkbox" id="CK0" name="hob" value="A号">A号
<input type="checkbox" id="CK1" name="hob" value="B号">B号
<input type="checkbox" id="CK2" name="hob" value="C号">C号
<input type="checkbox" id="CK3" name="hob" value="D号">D号
<input type="checkbox" id="CK4" name="hob" value="E号">E号
<hr>
<div id="hom">
选择码:
<input type="checkbox" value="1234">1234
<input type="checkbox" value="3456">3456
<input type="checkbox" value="6543">6543
<input type="checkbox" value="0987">0987
<input type="checkbox" value="0384">0384
<hr>
</div>
<a href="javascript:prn1_preview()">打印选择的号码</a><br>
<script language="javascript" type="text/javascript">   
        var LODOP; //声明为全局变量 
    function Retnhob() {
        var strhob="选择的号是:";
        obj_allhob=document.getElementsByName("hob");
        var hlen=obj_allhob.length;
    for (i=0;i<obj_allhob.length;i++) {
            if (document.getElementById("CK"+i).checked) {                
                strhob=strhob+document.getElementById("CK"+i).value;
            }             
        }
     return strhob;
    };
        function Retnhom() {
        var strhom="选择的码是:";
        var div_hom=document.getElementById("hom");
        var obj_allhom=div_hom.getElementsByTagName("input");
        var hlen=obj_allhom.length;
    for (i=0;i<obj_allhom.length;i++) {
            if (obj_allhom[i].checked) {                
                strhom=strhom+obj_allhom[i].value+"|";
            }             
        }
     strhom=strhom.substring(0,strhom.length-1);
     return strhom;
    };
    function prn1_preview() {
        LODOP=getLodop(); 
        var dtt=Retnhob();
        var dtm=Retnhom();
        LODOP.PRINT_INIT("");        
        LODOP.ADD_PRINT_TEXT(28,41,200,22,document.getElementById("T1").value+dtt);
        LODOP.ADD_PRINT_TEXT(58,41,200,22,document.getElementById("T1").value+dtm);
        LODOP.PREVIEW();
    };
</script>     
</body>

图示:

 

posted @ 2019-05-17 16:01  花谢悦神  阅读(1178)  评论(0编辑  收藏  举报