碰到了一个大坑
在网上找了根据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里面,却有效。废了好长时间,并且到处乱试,终于发现这个原因了。
具体原因不知,跪求大佬讲解。