Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/.htaccess/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JQuery自定义选择-val()不起作用_Jquery_Select - Fatal编程技术网

JQuery自定义选择-val()不起作用

JQuery自定义选择-val()不起作用,jquery,select,Jquery,Select,我对customSelect的下拉列表有问题。 当我打电话时 $('#select_id').val('optionValue'); 所选选项不可见。 有一个例子 我也尝试过“.trigger('update');”,但也不起作用 你能帮忙吗? 提前感谢在您的示例JSFIDLE中,您将jQuery选择器分配给$cs是错误的,如果您只是将其更改为 var $cs = $('.styled'); $cs.val('three'); 然后它就可以正常工作了在您的示例JSFIDLE中,如果您将jQu

我对customSelect的下拉列表有问题。 当我打电话时

$('#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的解决方案,它更改了我选择的值,但由于某种原因,它使我的选择在重新渲染后不可读取。这可能是我的情况所特有的。谢谢