JQuery自定义选择-val()不起作用
我对customSelect的下拉列表有问题。 当我打电话时JQuery自定义选择-val()不起作用,jquery,select,Jquery,Select,我对customSelect的下拉列表有问题。 当我打电话时 $('#select_id').val('optionValue'); 所选选项不可见。 有一个例子 我也尝试过“.trigger('update');”,但也不起作用 你能帮忙吗? 提前感谢在您的示例JSFIDLE中,您将jQuery选择器分配给$cs是错误的,如果您只是将其更改为 var $cs = $('.styled'); $cs.val('three'); 然后它就可以正常工作了在您的示例JSFIDLE中,如果您将jQu
$('#select_id').val('optionValue');
所选选项不可见。
有一个例子
我也尝试过“.trigger('update');”,但也不起作用
你能帮忙吗?
提前感谢在您的示例JSFIDLE中,您将jQuery选择器分配给$cs是错误的,如果您只是将其更改为
var $cs = $('.styled');
$cs.val('three');
然后它就可以正常工作了在您的示例JSFIDLE中,如果您将jQuery选择器的赋值改为$cs,那么它是错误的
var $cs = $('.styled');
$cs.val('three');
然后它就可以正常工作了您只需更改顺序即可。在调用customSelect()之前设置该值
你只需要改变一下顺序。在调用customSelect()之前设置该值
这是你小提琴上的工作代码-
var $cs = $('.styled');
$cs.val('three');
$cs.customSelect();
这是你小提琴上的工作代码-
var $cs = $('.styled');
$cs.val('three');
$cs.customSelect();
问题:
<!-- bug fixation with custom select -->
<div style="display:none">
<div id="ad-for-replacement">
<select name="ad" class="combobox ad">
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
<option value="6">6</option>
<option value="7">7</option>
<option value="8">8</option>
<option value="9">9</option>
</select>
</div>
</div>
<!-- /bug fixation with custom select -->
<td class="for-ch">
<select name="ch" class="combobox ch">
<option value="0">0</option>
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
<option value="6">6</option>
<option value="7">7</option>
<option value="8">8</option>
<option value="9">9</option>
</select>
</td>
$("td .combobox").customSelect();
$(document).ready(function(){
$(document.body).delegate('.for-ad .ad', "change", function(){
var option = $(this).val(); // console.log('option: ' + option);
var content = $('#ad-for-replacement').html(); // console.log(content);
$('.for-ad').html(content);
$('.for-ad option:contains("' + option + '")').prop('selected', true);
$(".for-ad .combobox").customSelect();
})
});
Jquery CustomSelect不会更改select
源数据:
<!-- bug fixation with custom select -->
<div style="display:none">
<div id="ad-for-replacement">
<select name="ad" class="combobox ad">
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
<option value="6">6</option>
<option value="7">7</option>
<option value="8">8</option>
<option value="9">9</option>
</select>
</div>
</div>
<!-- /bug fixation with custom select -->
<td class="for-ch">
<select name="ch" class="combobox ch">
<option value="0">0</option>
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
<option value="6">6</option>
<option value="7">7</option>
<option value="8">8</option>
<option value="9">9</option>
</select>
</td>
$("td .combobox").customSelect();
$(document).ready(function(){
$(document.body).delegate('.for-ad .ad', "change", function(){
var option = $(this).val(); // console.log('option: ' + option);
var content = $('#ad-for-replacement').html(); // console.log(content);
$('.for-ad').html(content);
$('.for-ad option:contains("' + option + '")').prop('selected', true);
$(".for-ad .combobox").customSelect();
})
});
自定义选择主页:
决策:
<!-- bug fixation with custom select -->
<div style="display:none">
<div id="ad-for-replacement">
<select name="ad" class="combobox ad">
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
<option value="6">6</option>
<option value="7">7</option>
<option value="8">8</option>
<option value="9">9</option>
</select>
</div>
</div>
<!-- /bug fixation with custom select -->
<td class="for-ch">
<select name="ch" class="combobox ch">
<option value="0">0</option>
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
<option value="6">6</option>
<option value="7">7</option>
<option value="8">8</option>
<option value="9">9</option>
</select>
</td>
$("td .combobox").customSelect();
$(document).ready(function(){
$(document.body).delegate('.for-ad .ad', "change", function(){
var option = $(this).val(); // console.log('option: ' + option);
var content = $('#ad-for-replacement').html(); // console.log(content);
$('.for-ad').html(content);
$('.for-ad option:contains("' + option + '")').prop('selected', true);
$(".for-ad .combobox").customSelect();
})
});
我花了很多时间来解决这个问题,但我发现标准函数不允许使用“customSelect效果”更改select
唯一的工作决策是为此目的编写自己的代码(技巧)
以下是我的代码,它在所有常见浏览器(Firefox、Opera、Chrome、IE 11、Ipad Safari)中都能正常工作:
1步:内部隐藏div创建选择,无customSelect效果:
<!-- bug fixation with custom select -->
<div style="display:none">
<div id="ad-for-replacement">
<select name="ad" class="combobox ad">
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
<option value="6">6</option>
<option value="7">7</option>
<option value="8">8</option>
<option value="9">9</option>
</select>
</div>
</div>
<!-- /bug fixation with custom select -->
<td class="for-ch">
<select name="ch" class="combobox ch">
<option value="0">0</option>
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
<option value="6">6</option>
<option value="7">7</option>
<option value="8">8</option>
<option value="9">9</option>
</select>
</td>
$("td .combobox").customSelect();
$(document).ready(function(){
$(document.body).delegate('.for-ad .ad', "change", function(){
var option = $(this).val(); // console.log('option: ' + option);
var content = $('#ad-for-replacement').html(); // console.log(content);
$('.for-ad').html(content);
$('.for-ad option:contains("' + option + '")').prop('selected', true);
$(".for-ad .combobox").customSelect();
})
});
4步:在jquery上编写实现:
<!-- bug fixation with custom select -->
<div style="display:none">
<div id="ad-for-replacement">
<select name="ad" class="combobox ad">
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
<option value="6">6</option>
<option value="7">7</option>
<option value="8">8</option>
<option value="9">9</option>
</select>
</div>
</div>
<!-- /bug fixation with custom select -->
<td class="for-ch">
<select name="ch" class="combobox ch">
<option value="0">0</option>
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
<option value="6">6</option>
<option value="7">7</option>
<option value="8">8</option>
<option value="9">9</option>
</select>
</td>
$("td .combobox").customSelect();
$(document).ready(function(){
$(document.body).delegate('.for-ad .ad', "change", function(){
var option = $(this).val(); // console.log('option: ' + option);
var content = $('#ad-for-replacement').html(); // console.log(content);
$('.for-ad').html(content);
$('.for-ad option:contains("' + option + '")').prop('selected', true);
$(".for-ad .combobox").customSelect();
})
});
问题:
<!-- bug fixation with custom select -->
<div style="display:none">
<div id="ad-for-replacement">
<select name="ad" class="combobox ad">
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
<option value="6">6</option>
<option value="7">7</option>
<option value="8">8</option>
<option value="9">9</option>
</select>
</div>
</div>
<!-- /bug fixation with custom select -->
<td class="for-ch">
<select name="ch" class="combobox ch">
<option value="0">0</option>
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
<option value="6">6</option>
<option value="7">7</option>
<option value="8">8</option>
<option value="9">9</option>
</select>
</td>
$("td .combobox").customSelect();
$(document).ready(function(){
$(document.body).delegate('.for-ad .ad', "change", function(){
var option = $(this).val(); // console.log('option: ' + option);
var content = $('#ad-for-replacement').html(); // console.log(content);
$('.for-ad').html(content);
$('.for-ad option:contains("' + option + '")').prop('selected', true);
$(".for-ad .combobox").customSelect();
})
});
Jquery CustomSelect不会更改select
源数据:
<!-- bug fixation with custom select -->
<div style="display:none">
<div id="ad-for-replacement">
<select name="ad" class="combobox ad">
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
<option value="6">6</option>
<option value="7">7</option>
<option value="8">8</option>
<option value="9">9</option>
</select>
</div>
</div>
<!-- /bug fixation with custom select -->
<td class="for-ch">
<select name="ch" class="combobox ch">
<option value="0">0</option>
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
<option value="6">6</option>
<option value="7">7</option>
<option value="8">8</option>
<option value="9">9</option>
</select>
</td>
$("td .combobox").customSelect();
$(document).ready(function(){
$(document.body).delegate('.for-ad .ad', "change", function(){
var option = $(this).val(); // console.log('option: ' + option);
var content = $('#ad-for-replacement').html(); // console.log(content);
$('.for-ad').html(content);
$('.for-ad option:contains("' + option + '")').prop('selected', true);
$(".for-ad .combobox").customSelect();
})
});
自定义选择主页:
决策:
<!-- bug fixation with custom select -->
<div style="display:none">
<div id="ad-for-replacement">
<select name="ad" class="combobox ad">
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
<option value="6">6</option>
<option value="7">7</option>
<option value="8">8</option>
<option value="9">9</option>
</select>
</div>
</div>
<!-- /bug fixation with custom select -->
<td class="for-ch">
<select name="ch" class="combobox ch">
<option value="0">0</option>
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
<option value="6">6</option>
<option value="7">7</option>
<option value="8">8</option>
<option value="9">9</option>
</select>
</td>
$("td .combobox").customSelect();
$(document).ready(function(){
$(document.body).delegate('.for-ad .ad', "change", function(){
var option = $(this).val(); // console.log('option: ' + option);
var content = $('#ad-for-replacement').html(); // console.log(content);
$('.for-ad').html(content);
$('.for-ad option:contains("' + option + '")').prop('selected', true);
$(".for-ad .combobox").customSelect();
})
});
我花了很多时间来解决这个问题,但我发现标准函数不允许使用“customSelect效果”更改select
唯一的工作决策是为此目的编写自己的代码(技巧)
以下是我的代码,它在所有常见浏览器(Firefox、Opera、Chrome、IE 11、Ipad Safari)中都能正常工作:
1步:内部隐藏div创建选择,无customSelect效果:
<!-- bug fixation with custom select -->
<div style="display:none">
<div id="ad-for-replacement">
<select name="ad" class="combobox ad">
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
<option value="6">6</option>
<option value="7">7</option>
<option value="8">8</option>
<option value="9">9</option>
</select>
</div>
</div>
<!-- /bug fixation with custom select -->
<td class="for-ch">
<select name="ch" class="combobox ch">
<option value="0">0</option>
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
<option value="6">6</option>
<option value="7">7</option>
<option value="8">8</option>
<option value="9">9</option>
</select>
</td>
$("td .combobox").customSelect();
$(document).ready(function(){
$(document.body).delegate('.for-ad .ad', "change", function(){
var option = $(this).val(); // console.log('option: ' + option);
var content = $('#ad-for-replacement').html(); // console.log(content);
$('.for-ad').html(content);
$('.for-ad option:contains("' + option + '")').prop('selected', true);
$(".for-ad .combobox").customSelect();
})
});
4步:在jquery上编写实现:
<!-- bug fixation with custom select -->
<div style="display:none">
<div id="ad-for-replacement">
<select name="ad" class="combobox ad">
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
<option value="6">6</option>
<option value="7">7</option>
<option value="8">8</option>
<option value="9">9</option>
</select>
</div>
</div>
<!-- /bug fixation with custom select -->
<td class="for-ch">
<select name="ch" class="combobox ch">
<option value="0">0</option>
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
<option value="6">6</option>
<option value="7">7</option>
<option value="8">8</option>
<option value="9">9</option>
</select>
</td>
$("td .combobox").customSelect();
$(document).ready(function(){
$(document.body).delegate('.for-ad .ad', "change", function(){
var option = $(this).val(); // console.log('option: ' + option);
var content = $('#ad-for-replacement').html(); // console.log(content);
$('.for-ad').html(content);
$('.for-ad option:contains("' + option + '")').prop('selected', true);
$(".for-ad .combobox").customSelect();
})
});
以上所有答案都是错误的。再次调用
.customSelect()
将重新启动控件,但它们将被冻结
正确的方法是使用.trigger()
强制重新加载:
以上所有答案都是错误的。再次调用
.customSelect()
将重新启动控件,但它们将被冻结
正确的方法是使用.trigger()
强制重新加载:
该组件具有一个在更改值后应使用的值:
$('#select_id')
.val('three')
.trigger('render.customSelect');
该组件具有一个在更改值后应使用的值:
$('#select_id')
.val('three')
.trigger('render.customSelect');
按照此顺序使用自定义选择 设置一个值 1.首先销毁自定义选择(如果已初始化)
$('#select_id').customSelect('destroy');
2.设置值
$('#select_id').val('1');
3.重新初始化自定义选择
$('#select_id').customSelect();
按照此顺序使用自定义选择 设置一个值 1.首先销毁自定义选择(如果已初始化)
$('#select_id').customSelect('destroy');
2.设置值
$('#select_id').val('1');
3.重新初始化自定义选择
$('#select_id').customSelect();
试试这个很容易
$(“选择id”).customselect('select',1) 试试这个,非常简单
$(“选择id”).customselect('select',1) 您正在赋值,但未将
:selected
添加到所述选项请包含所有必要的代码,以便在问题本身中重现问题。您正在赋值,但未将:selected
添加到所述选项请包含所有必要的代码,以便在问题本身中重现问题。谢谢,所以每次我以编程方式更改选项时都必须调用“customSelect()”?当我多次调用“customSelect()”时,选择框冻结。。。您可以在这里看到,谢谢,所以每次我以编程方式更改选项时都必须调用“customSelect()”?当我多次调用“customSelect()”,选择框将冻结。。。你可以在这里看到这个解决方案使我的选择框不可点击。我建议使用Jack的解决方案,它更改了我选择的值,但由于某种原因,它使我的选择在重新渲染后不可读取。这可能是我的情况所特有的。谢谢。这个解决方案使我的选择框不可点击。我建议使用Jack的解决方案,它更改了我选择的值,但由于某种原因,它使我的选择在重新渲染后不可读取。这可能是我的情况所特有的。谢谢