javascript - 如何从多选下拉列表中选择选项值时动态生成文本框

标签 javascript jquery html multi-select

我有一个多选下拉列表,用户可以从中选择多个项目。

根据选项值选择,动态文本框应以相同的形式生成。

选择单个选项时,应生成 3 个文本框。
第一个文本框显示所选选项的值
第二个文本框显示所选选项的文本
第三个文本框显示为空。

<html>
  <head>
    <script src="http://code.jquery.com/jquery-latest.js"></script>
  </head>
  <body align="center">
    <input type="text" value="some text"/>
    <select id="multiple" multiple="multiple" style="width: 120px;height: 120px;">
      <option value="1" >Ashutosh</option>option value="6">Jems Bond</option>
      <option value="7">Danial Crack</option> option value="8">Dan Brown</option>
      <option value="9">Angilina Jolly</option>
    </select>
    <script>
      function displayVals() { 
        var multipleValues = $("#multiple").val() || [];
        $("input").val(multipleValues);
      }
      $("select").change(displayVals);displayVals();
    </script>
  </body>
</html>

最佳答案

这里我为您的查询提供了完整的解决方案。请查看演示链接,如下所示:

演示 http://codebins.com/bin/4ldqp7a

HTML

<form id="frm">
  <select id="multiple" multiple="multiple" style="width: 120px;height: 120px;">
    <option value="1" >
      Ashutosh
    </option>
    <option value="6">
      Jems Bond
    </option>
    <option value="7">
      Danial Crack
    </option>
    <option value="8">
      Dan Brown
    </option>
    <option value="9">
      Angilina Jolly
    </option>
  </select>
  <div id="result">
  </div>
</form>

JQUERY

$(function() {
    $("#multiple").change(function() {
        var multipleValues = $("#multiple").val() || "";
        var result = "";
        if (multipleValues != "") {
            var aVal = multipleValues.toString().split(",");
            $.each(aVal, function(i, value) {
                result += "<div>";
                result += "<input type='text' name='opval" + (parseInt(i) + 1) + "' value='" + value.trim() + "'>";
                result += "<input type='text' name='optext" + (parseInt(i) + 1) + "' value='" + $("#multiple").find("option[value=" + value + "]").text().trim() + "'>";
                result += "<input type='text' name='option" + (parseInt(i) + 1) + "' value=''>";
                result += "</div>";
            });


        }
        //Set Result
        $("#result").html(result);

    });
});

CSS

#multiple{
  margin-bottom:10px;
  border:1px solid #333;
  background:#efefef;
  color:#000;
}
#result input{
  margin-left:5px;
  border:1px solid #333;
  background:#a4c4f4;
  margin-top:5px;
}

演示 http://codebins.com/bin/4ldqp7a

关于javascript - 如何从多选下拉列表中选择选项值时动态生成文本框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12403320/

相关文章:

javascript - 无法读取未定义的属性 'indexOf'

html - 如何正确对齐我的网页的导航栏?

html - GMail HTML 电子邮件制作图像 7000px 高

javascript - 按钮颜色不变

javascript - 我可以使用 post 单击 JQuery 页面上的按钮吗?

javascript - 显示与单独 Controller 关联的模型

ruby-on-rails-3 - 使用 will_paginate 和 ajax 进行双分页

javascript - 将带有javascript函数的span标签添加到html表中

javascript - 如果类别下没有任何子类别,则应隐藏该类别

javascript - 为拖放区中的选择创建唯一 ID