如何实现下拉框选项改变的事件

如何实现下拉框选项改变的事件,第1张

废话就不多说了,就以楼主的例子来解答吧。

页面首先是一个下拉列表和多个复选框,那么假设页面中这个下拉列表的id为theClass,复选框的name为student,值为各个学生的姓名。

首先是页面加载进来的时候,在action里获取到所有的班级列表,以及默认的那个班级的学生列表。那么页面就可以使用jstl或者直接遍历,填充班级下拉列表和学生复选框。这个代码就不上了,都是java代码。

接下来要做的事,就是当班级下拉列表发生改变时,重新加载学生复选框住一块。这里通常使用ajax实现,代码类似于这样:

// 假设楼主使用了jquery,因为这样的话ajax请求会比较简单

$(function(){

    // 给班级下拉列表添加onchange事件

    $('#theClass').bind('change', function(){

        // 根据班级名称获取json格式的学生列表

        $.post('返回学生列表的url',{class:'班级名称'},function(data){

            // data就是返回的学生列表

            // 移除原有的学生复选框

            $(':checkbox[name=student]').remove()

            // 根据json格式的返回值,重新创建学生复选框

            // 遍历data,创建学生复选框

        }, 'json')

    })

})

所以楼主需要首先解决几个问题:

1、如何返回json格式的学生列表

这个问题不难,struts2可以解决,因为struts2可以返回json格式的数据,你到网上查一查。解决这个问题,你就知道那个返回学生列表的url该填什么值了。

2、返回的data是什么格式的

上面说到返回的data应该是json格式,具体其实应该是这样的:

[{

    name:'学生A',

    id:'学生A的id'

},{

    name:'学生B',

    id:'学生B的id'

},{

    name:'学生C',

    id:'学生C的id'

}]

3、拿到data,如何生成新的学生复选框

这个是html节点 *** 作的问题。首先是要先移除原来的那些复选框的,这个上面的代码已经有了。接下来是创建新的复选框,大致如下:

var html = ""

for(var i = 0, len = data.length i < len i++){

    html += "<input type='checkbox' name='student' value='" + data[i].id + "'/>" + data[i].name

}

// 重新放到原来复选框的位置

$('#studentList').html(html)

至此,整个过程就结束了。

说起来是简单,但每一步都会有一些知识点,还是要研究一下才能做出来的。

实际的情况并不是一个label值改变的问题,我只是举个例子。

实际的情况是一个tabelview有三行,每行cell有一个label,第一行是时间段是通过pickview选择,数据是“最近一天、最近三天、最近一周”

第二行和第三行分别是开始时间和结束时间,label的改变是通过pickdate。

现在第一行改变选项要影响第二行开始时间,第三行结束时间的改变也要影响第二行开始时间,也就是以时间段和结束时间决定开始时间的显示。

现在这个联动没做出来。picker改变的时候label会变,但是picker改变是在自定义的UITableVIewCell里而不是tableView的那个Controller里,所以现在不知道怎么实现这种联动效果

1)添加LVS_EX_FULLROWSELECT属性就好了,

pmyListCtrl->SetExtendedStyle(pmyListCtrl->GetExtendedStyle()|LVS_EX_FULLROWSELECT)

2),向Listctrl添加事件LVN_ITEMCHANGED


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/bake/11661306.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-17
下一篇2023-05-17

发表评论

登录后才能评论

评论列表(0条)

    保存