HTML的select的ajax中js回显

碰到了一个大坑

在网上找了根据value将select标签下option回显,网上找了好多,之前也有自己写对的,在这个新页面上就是不起作用,后来发现ajax要回显,必须在success里边用js回显,在外面无效。这谁能想到?

function showAuthority(data1,data2) {
        $.ajax({
            url: 'http://localhost:8888/demo/authority/find',
            type: 'POST',
            success: function (result) {
                let obj = JSON.parse(result);

                htmlStr = " <select class='form-control m-b' name='authority' id='authority'>"
                for (let i = 0; i < obj.length; i++) {
                    let authority = obj[i];
                    htmlStr += "<option value='" + authority.id+"+"+authority.name+"'>" + authority.name + "</option>";
                }
                htmlStr += "</select>";
                $("#select").html(htmlStr);
               if(data1!=null&&data2!=null){
                   $("#authority").val(data1+"+"+data2);
                   //位置一
               }
            }
        });
     /*   $("#authority").val(data1+"+"+data2);*/
     //位置二
    }
    $(function () {
        showAuthority();
             /*   $("#authority").val(data1+"+"+data2);*/
     //位置三
    })
 $(function () {
       /* 位置四是我本来想实现的 这里是一个ajax在success里面获取了data1和data2的值,调用了showAuthority(),通过data1和data2的值回显,也没有用*/
        showAuthority();
             /*   $("#authority").val(data1+"+"+data2);*/
     //位置四
     function showAuthority(data1,data2) ;
    })
    

showAuthority(data1,data2)方法一开始是没有参数的(showAuthority()),后来发现只有在位置一才能实现回显,才不得不加上了data1,data2.
一开始以为是我拼接的原因,后来发现不拼接也没有作用。在网上百度找答案,怎么试都没有效果。但是在我写的另一个select,那个没有拼接在js里面,却有效。废了好长时间,并且到处乱试,终于发现这个原因了。
具体原因不知,跪求大佬讲解。

猜你喜欢

转载自blog.csdn.net/qq_39088110/article/details/108014964