为什么在打开模态框时不能马上获取树形选择框的value

现在需要对模态框关闭时判断是否修改,若修改了提示保存
图片说明

function getRoleList() {

        $("input[name='btSelectItem']").each(function (d) {
            if($(this).prop("checked")) {
                console.log($(this).val());
                if($(this).val()!="on") {
                    list2.push($(this).val());
                    console.log(list2.length);
                }
            }
        });
    }
 function unSaveClose() {
        var list = new Array();
        $("input[name='btSelectItem']").each(function (d) {
            if($(this).prop("checked")){
                if($(this).val()!="on"){
                    list.push($(this).val());

                }
            }
        });
        if(list.length!=list2.length)
    //  if(list.length!=0)
            {
            var index = layer.alert('请确认权限,选择关闭',{
                btn: ['关闭',"取消"] //按钮

上面的方法是模态框打开时自动加载,但是却不能循环获取checkbox的值,只能获取到一次on
下面是点击关闭按钮时调用,可以获取所有选中的值
我现在是想先获取刚打开时的已选中框的长度与关闭时的选中框的长度判断是否修改,但是getRoleList() 却获取不了,两个方法都没有其他的调用
求解啊啊,没有分了,请大佬赐教

sinat_36810495
罗宾范佩西 顶一下
10 个月之前 回复

2个回答

我感觉首先你的这个判断逻辑会有问题(已选中框的长度与关闭时的选中框的长度判断是否修改)
比如我之前勾选了A,B 我修改了一下,勾选了B,C那两个前后长度是一样的,但是我确实是修改了~

sinat_36810495
罗宾范佩西 回复weixin_40852944: 现在我不解的是连之前勾选的长度都不能获取了,value值为on,点击关闭时才能获取,而且选中的框都有value。整个项目也找不到定义btSelectItem的地方。
10 个月之前 回复
sinat_36810495
罗宾范佩西 第一个方法是打开这个模态框时马上加载调用,第二个方法是点击关闭时调用,两个长度应该是不同的吧?
10 个月之前 回复
weixin_40852944
weixin_40852944 这2个方法是怎么调用的
10 个月之前 回复

建议在复选框的 change 事件做文章, 判断更准确/即使;
对于你说的不能**马上**获取到UI的值, 我想这中间可能有异步获取服务器数据. 可以在它结束之后再执行那个函数;

如果是我来做, 把这个逻辑分成两个互不相关的两部分:
1. 数据模型, 负责记录/计算当前已经被勾选的数据
2. UI展示, 根据数据模型刷新UI视图
3. 整合, 联动数据和UI

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐