Javascript AJAX填充选择2不可单击
我正在使用Select2进行一个项目。第二个选择框将根据第一个框中的选定项填充,如下面的链接所示。但是,由于某些原因,我无法单击第二个选择框中的第一项。如果我想选择第一项,唯一的方法是首先选择其他用户,然后返回到第一项。我怎样才能解决这个问题 视频: 我的代码: 这是第一个选择框,由常规PHP(Laravel)填充。这里一切都很好Javascript AJAX填充选择2不可单击,javascript,php,jquery,ajax,jquery-select2,Javascript,Php,Jquery,Ajax,Jquery Select2,我正在使用Select2进行一个项目。第二个选择框将根据第一个框中的选定项填充,如下面的链接所示。但是,由于某些原因,我无法单击第二个选择框中的第一项。如果我想选择第一项,唯一的方法是首先选择其他用户,然后返回到第一项。我怎样才能解决这个问题 视频: 我的代码: 这是第一个选择框,由常规PHP(Laravel)填充。这里一切都很好 <div class="form-group"> <label for="select"> Partner: </label&
<div class="form-group">
<label for="select"> Partner: </label>
<select id="select" name="select" class="searchselect searchselectstyle">
@foreach($partners as $i => $partner)
<option {{$i == 0 ? 'selected' : ''}} value="{{$partner->id}}">{{$partner->name}}</option>
@endforeach
</select>
</div>
我找到了一个解决方案,如下所示:
<script type="text/javascript">
$(document).ready(function() {
$(".searchselect").select2();
search();
$("#select").change(function(){
search();
});
});
function search(){
var $post = {};
$post.id = $("#select").val();
$("#select2").select2({
ajax: {
dataType: "json",
type: "POST",
data: function (params) {
var query = {
term: params.term,
id: $post.id
};
return query;
},
url: '/json/getusers',
cache: false,
processResults: function (data) {
return {
results: data
};
}
}
});
}
</script>
$(文档).ready(函数(){
$(“.searchselect”).select2();
搜索();
$(“#选择”).change(函数(){
搜索();
});
});
函数搜索(){
var$post={};
$post.id=$(“#选择”).val();
$(“#选择2”)。选择2({
阿贾克斯:{
数据类型:“json”,
类型:“POST”,
数据:函数(参数){
变量查询={
术语:params.term,
id:$post.id
};
返回查询;
},
url:“/json/getusers”,
cache:false,
processResults:函数(数据){
返回{
结果:数据
};
}
}
});
}
现在我正在使用Select2中内置的常规AJAX功能,现在一切正常 检查json数据中键“id”的大小写敏感度。可能您返回的是“ID”而不是“ID” 不是那样的
{"results":[{"ID":"3","text":"Exampe 3"},{"ID":"4","text":"Example 4"},{"ID":"16","text":"Example 16"}]}
您是否尝试过在
$之前附加一个空选项(
)。每个函数?@ArmanOzak会给我一个小的空选项,如:OK。您是否可以在您的
标签上添加数据占位符=“您喜欢的任何内容”
?顺便说一句,当你这样做的时候,你也应该给你的PHP添加一个空白选项。@ArmanOzak同样的问题:最后一个想法:你能试着把$('#select2')。select2('destroy')创建新选项和$('#select2')。select2()代码>在创建它们之后?如果这也不起作用,我保证,我已经没有主意了。(:非常感谢兄弟!这是一个解决方案!参数确实需要是'id',而不是另一个名称。
<script type="text/javascript">
$(document).ready(function() {
$(".searchselect").select2();
search();
$("#select").change(function(){
search();
});
});
function search(){
var $post = {};
$post.id = $("#select").val();
$("#select2").select2({
ajax: {
dataType: "json",
type: "POST",
data: function (params) {
var query = {
term: params.term,
id: $post.id
};
return query;
},
url: '/json/getusers',
cache: false,
processResults: function (data) {
return {
results: data
};
}
}
});
}
</script>
{"results":[{"id":"3","text":"Exampe 3"},{"id":"4","text":"Example 4"},{"id":"16","text":"Example 16"}]}
{"results":[{"ID":"3","text":"Exampe 3"},{"ID":"4","text":"Example 4"},{"ID":"16","text":"Example 16"}]}