【问题标题】:SELECT: Combine value of two or more select and get their combination as outputSELECT:组合两个或多个选择的值并将它们的组合作为输出
【发布时间】:2017-04-06 07:45:49
【问题描述】:

我有很多天在谷歌上搜索这个问题,但我一无所获。我需要创建一个 DUPLICATE 和 DUPLICATE 和 DUPLICATE 取决于用户的 SELECT。之后,我需要在我选择的选择中组合每个选项的值。我希望我在这里得到了答案。以下代码如下:

<button name="duplicateselect" class="btn btn-primary">ADD ANOTHER SELECT</button>

<div class="row">
  <div class="col-lg-12">
    <div class="form-group">
      <label for="select1">ELEMENT 1</label>
      <select class="form-control" name="select2" id="select2">
        <option value="H">HYDORGEN</option>
        <option value="O">OXYGEN</option>
        <option value="K">POTASSIUM</option>
      </select>
    </div>
  </div>
  <div class="col-lg-12">
    <div class="form-group">
      <label for="select2">ELEMENT 2</label>
      <select class="form-control" name="select2" id="select2">
        <option value="H">HYDORGEN</option>
        <option value="O">OXYGEN</option>
        <option value="K">POTASSIUM</option>
      </select>
    </div>
  </div>
  <input type="text" class="form-control" placeholder="Combination Here" name="combination" id="combination">
</div>

输出应该是:
例如我选择了 select1 HYDROGEN 和 select2 OXYGEN
值应该是 H + O

【问题讨论】:

    标签: javascript html css twitter-bootstrap-3


    【解决方案1】:

    您有两个select,ID 为select2。您需要更改其中之一。请尝试以下操作:

    $('input[name=duplicateselect').click(function(){
        var sel1 = $('#select2 option:selected').val();
        var sel2 = $('#select3 option:selected').val();
        $('#combination').val(sel1+' + '+sel2)
    })
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
    <input type="submit" name="duplicateselect" class="btn btn-primary">
    <div class="row">
      <div class="col-lg-12">
        <div class="form-group">
          <label for="select1">ELEMENT 1</label>
          <select class="form-control" name="select2" id="select2">
            <option value="H">HYDORGEN</option>
            <option value="O">OXYGEN</option>
            <option value="K">POTASSIUM</option>
          </select>
        </div>
      </div>
      <div class="col-lg-12">
        <div class="form-group">
          <label for="select2">ELEMENT 2</label>
          <select class="form-control" name="select2" id="select3">
            <option value="H">HYDORGEN</option>
            <option value="O">OXYGEN</option>
            <option value="K">POTASSIUM</option>
          </select>
        </div>
      </div>
      <input type="text" class="form-control" placeholder="Combination Here" name="combination" id="combination">
    </div>

    【讨论】:

    • 是的,尤里卡。但是先生,我忘记了我需要它应该自动组合,并且当我单击重复时它应该重复重复。但是@Mamun,没错。
    • 您是否希望在更改选项时计算该值?
    • 这可能意味着你只想要 $('#combination').val($('#combination').val() + sel1+' + '+sel2)
    • @Andiih,这里的要求对我来说不是 100% 清楚。
    • @Mamun 我看起来像一位先生bootsnipp.com/snippets/featured/…。但在我的情况下,我需要一个选择而不是输入并自动组合值,就像 SESN 在codepen.io/SESN/pen/bqyexN?editors=1111 的答案一样。
    【解决方案2】:

    这需要一些简单的 javascript(或 jQuery)。根据您希望它的行为方式,有几个选项:

    A) 将 onchange 事件处理程序添加到选择框。当它们中的任何一个发生变化时,取出值并将其弹出到组合框中

    B) 为执行相同操作的表单添加 obsubmit 事件处理程序 - 这里最终的#combination 只会在提交时填充,而不是在更改时填充

    (正如@mamun 刚刚弹出的答案,我不会费心重新输入代码!)

    【讨论】:

    • 好的,先生,我需要一个重复的代码,选择并在我的输入中添加该值
    【解决方案3】:
    $('select').on('change', function(){
      var s = '';
      $('select').each(function(){
        if(s == '') {
          s = $(this).val();
        } else {
          s = s + ' + ' + $(this).val() ;  
        }
      })
      $('#combination').val(s);
    })
    

    https://codepen.io/SESN/pen/bqyexN?editors=1111

    【讨论】:

    • 是的,你明白了。但需要选择会增加和减少。我认为它称为克隆或附加。
    • 好的,我知道了。这太复杂了,但我想你给了我帮助! @Ronin Cypis
    • @Ronin Cypis,我已经编辑了解决方案。让我知道是否有任何其他方法可以优化解决方案
    • @SESN ,在您优化的答案中是否可以复制选择??
    猜你喜欢
    • 2013-08-14
    • 2022-01-04
    • 1970-01-01
    • 1970-01-01
    • 2016-03-23
    • 1970-01-01
    • 1970-01-01
    • 2016-07-26
    • 1970-01-01
    相关资源
    最近更新 更多