iterate+struts+实现复选框

 又是对老项目进行需求的开发,好烦。。。。。。。。。。。。。。。。。。

老项目页面使用的 struts 标签进行数据的展示和处理,但是需求要求将原先的输入框,变为下拉框选择,但是由于该输入框是多选的,如果使用下拉多选框的话,需要使用 Ctrl + 鼠标点击,但是用户使用过程中,不可能按照你的要求去做,

另一方面由于该数据框的选项比较的少,4 个,使用复选框不是很麻烦,如果复选的选项过多的话,需要使用弹窗的方式进行选择。 

 

<div>
    <%int t=0; %>
    <logic:present name="" scope="">
        <logic:iterate id="" name="" type="">
            
            <!-- 这里处理一下具体展示的数据信息-->
            
            
            <%t++; %>
        </logic:iterate>
    </logic:present>
</div>

 通过动态的 属性标签的id 去确定是对展示数据的哪一行进行操作。

这个是在新增行的时候使用的,在全选复选框后面添加一个 οnchange="quanxuan('"+number+"')"   事件

变量值,一定不能放到双引号里面,且需要使用 ' 单引号将变量引住。


function quanxuan(number) {
    /* 判断该id 的复选框是否被选中, 做全选的时候使用 */
    var checked = $("#id"+number).is(":checked");
    if (checked) {
        //由于每一行都存在一个复选框,所以这里不能使用 按照name 属性进行设置,通过父属性唯一的id 来确定是哪一行的复选框
        $("#ch" + number).children().children().attr("checked", "true");
    } else {
        $("#ch" + number).children().children().removeAttr("checked", "true");
    }
    
}

 

这个是在数据展示的时候使用的

var val = "苹果,香蕉,橘子";
var split = val.split(",");
/* 在数据加载的时候,通过这种方式,将后天传递过来的数据进行选中*/
for (var i = 0; i < split.length; i++) {
    var string = split[i];
    switch (string) {
        case '苹果':
            $("#shuiGuo" + number).children().children("input[value='苹果']").attr("checked", "checked");
            break;
        case '香蕉':
            $("#shuiGuo" + number).children().children("input[value='香蕉']").attr("checked", "checked");
            break;
        case '橘子':
            $("#shuiGuo" + number).children().children("input[value='橘子']").attr("checked", "checked");
            break;
    }
}

在进行数据点击修改的时候进行使用。 

// 苹果复选框的点击操作,其他的复选框也需要进行这样的操作,尝试过将 fucntion() 抽取出来,但是这样一来页面的数据展示会出现问题,
$("#ch" + number).children().children("input[value='苹果']").click(function () {
    var arrShuiGuo = "";
    //获得该行复选框所有的选中数据
    var jQuery = $("#ch"+number).children().children(":checkbox:checked");
    jQuery.each(function () {
        var val1 = $this.val();
        arrShuiGuo += val1;
        arrShuiGuo += ",";
    });
    // 将值赋给 隐藏的输入框里面,后台获取数据的时候,从该输入框获得数据,而不用从复选框获得数据,
    //看了一下复选框传递的数据,将该列所有选中的数据形成了一个数组,无法分清是哪一行的数据。
    $("#" + number).attr("value", arrShuiGuo);
    
});

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值