如果不包含字符串,则使用 jQuery 在下拉列表中选择空值



如果下拉选择选项不包含另一个下拉列表选择列表中的值,我正在尝试选择该选项的空(第一个)值:

$('#FirstDropdown').change(function() {
    if ( $('#SecondDropdown option').filter(':contains(' + this.value  + ')') ){
        $('#SecondDropdown option').filter(':contains(' + this.value  + ')').prop('selected',true);
    }else{
        $("#SecondDropdown option[value='']").prop('selected',true);
    }
});

如果#SecondDropdown option包含this.value则此代码运行良好,但如果不包含,则 else 语句不会重置下拉列表。

请问有什么建议吗?

编辑:下拉列表如下所示:

<select id="FirstDropdown">
    <option value="" selected="selected">&nbsp;</option>
    <option value="VAL1">First Value</option>
    <option value="VAL2">Second Value</option>
    <option value="VAL3">Third Value</option>
    <option value="VAL4">Fourth Value</option>
</select>
<select id="SecondDropdown">
    <option value="-1">&nbsp;</option>
    <option value="12">VAL1 SELECT OPTION</option>
    <option value="15">VAL2 SELECT OPTION</option>
    <option value="10">VAL3 SELECT OPTION</option>
</select>

编辑:添加了一个JsFiddle。

您没有任何选项元素具有value='' .您需要使用 $("#SecondDropdown option[value='-1']").prop('selected',true); .您还需要将 if 语句中的条件更改为 this.value!=''

$('#FirstDropdown').change(function() {
  if (  this.value!='' ){
    $('#SecondDropdown option').filter(':contains(' + this.value  + ')').prop('selected',true);
}else{
    $("#SecondDropdown option[value='-1']").prop('selected',true);
}});

工作演示

试试这个:你的if状况有问题,因为它总是正确的。您可以使用.length检查是否存在option并选择选项,否则选择空白

$('#FirstDropdown').change(function() {
    if ($('#SecondDropdown option:contains('+this.value +')').length>0){
        $('#SecondDropdown option:contains('+this.value +')').prop('selected',true);
    }else{
        $("#SecondDropdown option[value='-1']").prop('selected',true);
    }
});

JSFiddle Demo

这将为你工作。
首先,你必须检查你this.value,因为任何字符串都包含''。其次,由于if工作正常,您只需按[value=-1]过滤option

最终JS:

$('#FirstDropdown').change(function() {
    var $second = $('#SecondDropdown option').filter(':contains(' + this.value  + ')');
    if (this.value && $second){
        $second.prop('selected',true);
    }else{
        $("#SecondDropdown option[value=-1]").prop('selected',true);
    }
});

相关内容

  • 没有找到相关文章