【问题标题】:The first dropdown selected and displays the same selected option value on the second dropdown选择第一个下拉菜单并在第二个下拉菜单上显示相同的选定选项值
【发布时间】:2019-06-26 08:21:38
【问题描述】:

我有两个选择下拉菜单。我在页面加载时显示第一个下拉菜单,而第二个下拉菜单是动态显示的。

现在我正在做的是,当用户从第一个下拉列表中选择任何内容时,单击锚标记后在第二个下拉列表中选择相同的选项。

我尝试了下面的代码,但有一些问题。

$(wrapper).append('<select name="pp_fileStatus[]" class="fileStatus"><option disabled="" selected="">Select</option><option value="1"'if(fileStatus==1){"selected";}'> One</option><option value="2"' if(fileStatus==2){"selected";}'> Two</option><option value="3"'if(fileStatus==3){"selected";}'> Three</option></select>');

$(document).ready(function() {
  $('.fileStatus').change(function() {
    var fileStatus = $('.fileStatus option:selected').val();
  })

  var wrapper = $(".appentInside .row"); //Fields wrapper
  var add_button = $(".click_me"); //Add button ID
  $(add_button).click(function(e) { //on add input button click
    e.preventDefault();

    $(wrapper).append('<select name="pp_fileStatus[]" class="fileStatus"><option disabled="" selected="">Select</option><option value="1"> One</option><option value="2">Two</option><option value="3"> Three</option></select>');

  });

});
<select name="pp_fileStatus[]" class="fileStatus">
  <option disabled="" selected="">Select</option>
  <option value="1"> One</option>
  <option value="2"> Two</option>
  <option value="3"> Three</option>
</select>

<a href="javascript:void(0);" class="click_me">click me to display seocnd dropdown</a>
<div class="appentInside">
  <div class="row"></div>
</div>


<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>

【问题讨论】:

    标签: javascript jquery html


    【解决方案1】:

    你可以通过添加 2 小行代码来做到这一点:

    var fileStatus = $('.fileStatus:last option:selected').val(); // <-- This line 
    $(wrapper).append('<select name="pp_fileStatus[]" class="fileStatus"><option disabled="" selected="">Select</option><option value="1"> One</option><option value="2">Two</option><option value="3"> Three</option></select>');
    $('.fileStatus:last').val(fileStatus); // <-- This line 
    

    var fileStatus = $('.fileStatus:last option:selected').val(); 这将选择存在的最后一个dropdown 的值。

    $('.fileStatus:last').val(fileStatus); 这会将最后一个 dropdown(也就是新创建的)设置为 previous 值。

    演示

    $(document).ready(function() {
      $('.fileStatus:first').change(function() {
        var fileStatus = $('.fileStatus option:selected').val();
        $('.fileStatus:last').val(fileStatus);
      })
    
      var wrapper = $(".appentInside .row"); //Fields wrapper
      var add_button = $(".click_me"); //Add button ID
      $(add_button).click(function(e) { //on add input button click
        e.preventDefault();
        var fileStatus = $('.fileStatus:last option:selected').val();
        $(wrapper).append('<select name="pp_fileStatus[]" class="fileStatus"><option disabled="" selected="">Select</option><option value="1"> One</option><option value="2">Two</option><option value="3"> Three</option></select>');
        $('.fileStatus:last').val(fileStatus);
      });
    
    });
    <select name="pp_fileStatus[]" class="fileStatus">
      <option disabled="" selected="">Select</option>
      <option value="1"> One</option>
      <option value="2"> Two</option>
      <option value="3"> Three</option>
    </select>
    
    <a href="javascript:void(0);" class="click_me">click me to display seocnd dropdown</a>
    <div class="appentInside">
      <div class="row"></div>
    </div>
    
    
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>

    【讨论】:

    • @questionbank 我已经更新了答案。代码有点不言自明
    • 是的,我检查过了,它正在工作。先生,我需要一个信息,比如在显示第二个下拉列表之后,如果用户更改了第一个下拉选项,那么我如何在第二个下拉列表中显示相同的内容?我必须使用什么逻辑?
    • 那就另当别论了,也需要你自己先尝试一下。
    • 是的,我知道这是一个不同的问题,但你能帮我解决这个问题吗?我应该从哪里开始?
    • @questionbank 我已经用解决方案更新了演示
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-09-19
    • 1970-01-01
    • 1970-01-01
    • 2012-06-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多