当前位置: 首页 > 知识库问答 >
问题:

在辅助选择中隐藏/显示所选选项

薛弘壮
2023-03-14

我有两个<代码>

当用户从第一个选择框中选择一个值时,我希望第二个选择框只显示连接的值。

我的代码:

<select id="ExtraField_1" name="ExtraField_1">
    <option value="1">test1</option>
    <option value="2">test2</option>
    <option value="3">test3</option>
    <option value="4">test4</option>
    <option value="5">test5</option>
    <option value="6">test6</option>
    <option value="7">test7</option>
    <option value="8">test8</option>
    <option value="9">test9</option>
    <option value="10">test10</option>
    <option value="11">test11</option>
    <option value="12">test12</option>
</select>
<select id="ExtraField_2" name="ExtraField_2">
    <option value="1">test1</option>
    <option value="2">test2</option>
    <option value="3">test3</option>
    <option value="4">test4</option>
    <option value="5">test5</option>
    <option value="6">test6</option>
    <option value="7">test7</option>
    <option value="8">test8</option>
    <option value="9">test9</option>
    <option value="10">test10</option>
    <option value="11">test11</option>
    <option value="12">test12</option>
    <option value="13">test13</option>
    <option value="14">test14</option>
    <option value="15">test15</option>
    <option value="16">test16</option>
    <option value="17">test17</option>
    <option value="18">test18</option>
    <option value="19">test19</option>
    <option value="20">test20</option>
</select>

因此,当用户从第一个选择框M中选择“test1”时,他在第二个选择框上只会看到“test2”、“test3”和“test4”;第一个框中的“test2”将在第二个框中显示“test6”、“test7”和“test8”。

如何使用JavaScript解决此问题?

共有2个答案

栾鸣
2023-03-14
 $('#ExtraField_1').change(function() {
 $('#ExtraField_2').val(this.value);

});

http://jsfiddle.net/judearasu/rF8G6/

骆昊阳
2023-03-14

如果您可以使用jQuery,那么您总是可以清除并将选项附加到第二个select。

    $('#ExtraField_1').change(function(){
        $('#ExtraField_2').find('option').remove()
        if($(this).val() == '1'){
           $('#ExtraField_2').append($("<option </option>").attr('value','2').text('test2'));
           $('#ExtraField_2').append($("<option></option>").attr('value','3').text('test3'));
           $('#ExtraField_2').append($("<option></option>").attr('value','4').text('test4'));
        }
        if($(this).val() == '2'){
           $('#ExtraField_2').append($("<option></option>").attr('value','5').text('test5'));
           $('#ExtraField_2').append($("<option></option>").attr('value','6').text('test6'));
           $('#ExtraField_2').append($("<option></option>").attr('value','7').text('test7'));
        } 
   });

http://jsfiddle.net/8XVuv/2/

仅使用javascript有点复杂,但我仍然会采用相同的方法

    function createOption(otext,oValue){
        var newOption = document.createElement('option');
        newOption.text = otext;
        newOption.value = oValue;
        return newOption;
    }

    function clearSelect(theSelect){
        for(var i = 0;i <= theSelect.options.length+1;i++)
        {
            theSelect.remove();
        }
    }

    function onSelect(theSelect){
        var nextSelect = document.getElementById('ExtraField_2');
        clearSelect(nextSelect);
        var selected = theSelect.options[theSelect.selectedIndex];

        if(selected.value == 1){
            nextSelect.add(createOption('test2','2'));
            nextSelect.add(createOption('test3','3'));
            nextSelect.add(createOption('test4','4'));
        }
        if(selected.value == 2){
            nextSelect.add(createOption('test5','5'));
            nextSelect.add(createOption('test6','6'));
            nextSelect.add(createOption('test7','7'));
        }

    }

与html:

<select id="ExtraField_1" name="ExtraField_1" onchange="javascript: onSelect(this);" >
    <option value="0">Select a test..</option>
    <option value="1">test1</option>
    <option value="2">test2</option>
    <option value="3">test3</option>
    <option value="4">test4</option>
    <option value="5">test5</option>
    <option value="6">test6</option>
    <option value="7">test7</option>
    <option value="8">test8</option>
    <option value="9">test9</option>
    <option value="10">test10</option>
    <option value="11">test11</option>
    <option value="12">test12</option>
</select>

<select id="ExtraField_2" name="ExtraField_2">
    <option value="0">Select from the left</option>
</select>​

正如您所看到的,它仍能满足您的期望,但您并没有隐藏选项。

http://jsfiddle.net/upKzW/13/

 类似资料:
  • 问题内容: 好的,一段时间以来,我一直在寻找答案,但我遇到的所有问题(甚至在搜索javascript时)都与jQuery结合在一起!没人再使用普通的javascript吗?!? 因此,我想要一个下拉列表(使用多个选项进行选择)。选择某个选项后,我希望显示一个隐藏的div。 然后,我尝试使用以下JavaScript代码: 我猜我的问题出在选项中的onClick触发器上,但是我不确定还有什么用?或者,

  • 问题内容: 这是我的代码。为什么不起作用? 问题答案: 您正在加载DOM之前运行代码。 尝试这个: 现场示例:

  • 问题内容: 我正在尝试创建一个表单,当选择选择元素“ parcel”时,它将显示一个div,但是当未选择时,我想隐藏div。这是我目前的标记: 到目前为止,这是我的HTML。 到目前为止,这是我的jQuery。 问题答案: 使用以下JQuery。

  • 问题内容: 我试图根据我选择的字段之一的值显示和隐藏一些表单字段。我希望使用数组来保存每个选择值应显示的内容和不应该显示的内容,以免将我从庞大的switch语句中删除,但无法弄清楚该如何做。 我正在使用PHP和jQuery。任何帮助都会很棒。 问题答案: 尝试这样的事情: 然后在jQuery中:

  • 在选择域之前: 域名选择后: 当我们启动网站时,它将显示域名下拉列表和选项值为“选择域”。如果我选择“选择域”选项,将显示实际域名。(这意味着在我选择选择域选项之前,不会显示有效域名列表) 我是硒新手,所以我试着使用和可见文本选项选择该选项。 我尝试了下面的python代码。但它不起作用。 我需要按以下顺序选择: > 选择域按钮 接下来,我需要选择自动隐藏文本“选择域…”选项值。然后将显示域值。(

  • 我的p:dataTable是这样设置的。 感谢任何帮助