在下拉列表中选择多个选项时,如何生成动态文本框?

门尼沙

我最后有选项下拉菜单,如果我们动态选择``其他''选项,则会出现``其他''选项,但我的问题是,这是多选下拉菜单。如果您选择``其他''以及该下拉菜单中的另一个选项,文本框即将到来。如果您选择“其他”选项和任何其他选项,如何获取该文本框...

function showfield(name) {
    if (name == 'others') {
        document.getElementById('div1').innerHTML =
            '<input type="text"  id="others" name="others" autocomplete="off" />';	  
    }
    else {
        document.getElementById('div1').innerHTML ='';
    } 
}
<td>
    <select class="outcomes" id="outcomes" name="keyOutcomes" 
            multiple="multiple" style="width: 310px;"
            onchange="showfield(this.options[this.selectedIndex].value)">
       <option value="Revenue-top-line">Revenue top-line</option>
       <option value="Margin">Margin(CTS/Client)</option>
       <option value="Cashflows">Cashflow improvement</option>
       <option value="Custome">Customer experience/CSAT</option>
       <option value="Demand">Demand Elimination</option>
       <option value="Risk">Risk Reduction</option>
       <option value="Regulatory_compliance">Regulatory compliance</option>
       <option value="others">Others</option>
   </select>
   <span id="outcomeaddress" style="margin-top: 29px; margin-left: 275px; color: red;"></span>
   <div id="div1"></div>
</td>

Yan Mayatskiy

好吧,首先您已经添加了jquery标签,但是您没有在问题中使用它,所以我假设您不介意答案是否包含jquery:

这是一个工作代码(经过测试),如果选择了其他代码,则显示或不显示其他选项:

$("#outcomes").change(function() {
    var selected = $(this).val(); //array of the selected values in drop box

  for(var i=0; i < selected.length; i++) {
    if (selected[i] == "others") {
        $("#div1").html('<input type="text"  id="others" name="others" autocomplete="off" />');
    } else {
        $("#div1").html("");
    }
  }
});

它所做的就是获取所有选定的值(选择var),遍历它们以检查其他值是否为选定的值之一,如果是,则显示输入,如果不,则不显示。

也不要忘记删除html中的onchange:

<select class="outcomes" id="outcomes" name="keyOutcomes" multiple="multiple" style="width: 310px;">
    <option value="Revenue-top-line">Revenue top-line</option>
    <option value="Margin">Margin(CTS/Client)</option>
    <option value="Cashflows">Cashflow improvement</option>
    <option value="Custome">Customer experience/CSAT</option>
    <option value="Demand">Demand Elimination</option>
    <option value="Risk">Risk Reduction</option>
    <option value="Regulatory_compliance">Regulatory compliance</option>
    <option value="others">Others</option>
</select> <span id="outcomeaddress" style="margin-top: 29px; margin-left: 275px; color: red;"></span>
<div id="div1"></div

编辑:这是有效的,因为“其他”是最后一个选项,因此每次选择某项时它都会最后检查一次,即使“其他”不是最后一个选项,这也是一个代码:

$("#outcomes").change(function() {
    var selected = $(this).val(); //array of the selected values in drop box
    var isSelected = false;

  for(var i=0; i < selected.length; i++) {
    if (selected[i] == "others") {
        isSelected = true;
    }
  }

  if (isSelected) {
    $("#div1").html('<input type="text"  id="others" name="others" autocomplete="off" />');
  } else {
    $("#div1").html('');
  }
});

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

基于使用jQuery的文本框输入,在下拉列表中选择选项

从下拉列表中选择其他选项时激活文本框

如何根据下拉列表选择填充多个文本框?

如何在选择下拉列表时动态创建文本框

选择下拉列表时如何自动填充文本框

使用 selenium python 在下拉菜单中选择选项后,在文本框中输入值

如何在下拉列表中添加文本框?

当特定的选项是从下拉列表中动态表单角选择显示隐藏的文本框

在组合框中选择下拉列表后如何创建文本框

从SuiteScript的下拉菜单中选择选项后,如何显示文本框?

从php的下拉列表中选择时,自动在文本框中输入金额

从下拉列表中选择值时更改文本框的值

如何从 3 个下拉列表中选择数据并在文本框中显示结果

在下拉列表1中选择值时如何更改下拉列表框的内容

当用户在下拉框中选择日期时,使用 javascript 用日期选择器替换文本框

选择下拉列表时在文本框中获取值

选择下拉列表后如何使用从mysql表中获取的数据填充多个文本框

从下拉菜单中选择“自定义选项”后如何启用输入文本框?

在php中选择下拉菜单时,在多个文本框中获取数据库值

如何基于下拉列表选择mvc填充文本框

每次用户进行选择时,如何使用国家/地区下拉列表的值填充文本框?

从下拉列表中选择的选项将填充另一个文本框/下拉列表中的更改值

在面板中选择多个文本框

动态选择框如何从我的文本框值向选择框动态添加选项

多个工作表更改公式-在下拉列表中选择某些条件时的多个操作

如何在下拉菜单中添加文本框选择选项

在下拉列表中选择选项时自动显示结果

在下拉列表中选择特定选项时更改属性

从AngularJs的下拉列表中选择多个选项