如何根据从外部单选按钮组单击的内容显示或隐藏<option>?

马特

我正在使用jQuery构建表单,当用户单击“添加更多”时,该表单会动态添加具有递增ID的选择字段。我需要能够根据用户先前在表单中选择的内容来显示或隐藏某些选项。

当用户单击单选组中的“ A”时,“ Div A1”将被隐藏。当用户单击“ B”时,“ Div B1”将被隐藏,但是将显示“ Div A1”,依此类推。

这样做的最好方法是什么?

$(function() {
  $('.show_hide_div_list').hide();

  $('#hide_div_A').click(function() {
    $('.show_hide_div_list').show();
  });

  $('#hide_div_B').click(function() {
    $('.show_hide_div_list').show();
  });

  $('#hide_div_C').click(function() {
    $('.show_hide_div_list').show();
  });

  $('#hide_div_D').click(function() {
    $('.show_hide_div_list').show();
  });

  var show_hide_div_max_fields = 36;
  var show_hide_div_x = 0;

  $('#show_hide_div_add').click(function(e) {
    e.preventDefault();
    if (show_hide_div_x < show_hide_div_max_fields) {
      show_hide_div_x++;
      var inps = $('#show_hide_div_wrapper >div:last').data('count') + 1 || 1;
      $('#show_hide_div_wrapper').append('<div class="show_hide_div" data-count="' + inps + '"><select id="show_hide_div"><option value="div_a" id="div_a' + inps + '">Div A' + inps + '</option><option value="div_b' + inps + '" id="div_b' + inps + '">Div B' + inps + '</option><option value="div_c' + inps + '" id="div_c' + inps + '">Div C' + inps + '</option><option value="div_d' + inps + '" id="div_d' + inps + '">Div D' + inps + '</option></select><a class=remove>Remove</a><br><br></div>');

    }
    $('#show_hide_div_wrapper').on('click', 'a.remove', function() {
      var inps = $('#show_hide_div_wrapper > div:last').data('count') - 1 || 1;
      show_hide_div_x--;
      $(this).closest('div').remove();
    });
  });
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<table>
  <tr class="show_hide_div">
    <td style="vertical-align:top;">
      Select which options you want to hide
    </td>
    <td>
      <label>A</label>
      <input type="radio" name="hide_div" id="hide_div_A" value="A">
      <br>
      <label>B</label>
      <input type="radio" name="hide_div" id="hide_div_B" value="B">
      <br>
      <label>C</label>
      <input type="radio" name="hide_div" id="hide_div_C" value="C">
      <br>
      <label>D</label>
      <input type="radio" name="hide_div" id="hide_div_D" value="D">
    </td>
  </tr>
  <tr class="show_hide_div_list" style="line-height:1em;">
    <td>
    </td>
    <td>
      <span id="show_hide_div_wrapper">						
				</span>
    </td>
  </tr>
  <tr class="show_hide_div_list">
    <td>
      &nbsp;
    </td>
    <td>
      <button id="show_hide_div_add">Add More</button>
    </td>
  </tr>
</table>

新的

$(function() {
  $('.show_hide_div_list').hide();
  var divArray = ['A', 'B', 'C', 'D']
  divArray.forEach(function (item) {
      $('#hide_div_' + item).click(function () {
          $('.show_hide_div_list').show()
      })  
  });
  
  var show_hide_div_max_fields = 36;
  var show_hide_div_x = 0;

  $('#show_hide_div_add').click(function(e) {
    e.preventDefault();
      var optionArray = ['A', 'B', 'C', 'D'];
      optionArray.forEach(function (item) {
          if ($('#hide_div_' + item).prop('checked')) {
              if (show_hide_div_x < show_hide_div_max_fields) {
                  show_hide_div_x++;
                  var inps = $('#show_hide_div_wrapper >div:last').data('count') + 1 || 1;
                  
                  var div = $('<div>').addClass('show_hide_div').prop('data-count', inps);
              var select = $('<select>').prop('id', 'show_hide_div');
              optionArray.forEach(function (_item) {
                  if (_item != item) {
                      var option = $('<option>').prop('id', 'div_' + _item + inps).text('Div ' + _item);
                      select.append(option);
                  }                  
              })
              div.append(select).append('<a class=remove>Remove</a><br><br>');
              $('#show_hide_div_wrapper').append(div);
               }              
          }
      });
    
    $('#show_hide_div_wrapper').on('click', 'a.remove', function() {
      var inps = $('#show_hide_div_wrapper > div:last').data('count') - 1 || 1;
      show_hide_div_x--;
      $(this).closest('div').remove();
    });
  });
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<table>
  <tr class="show_hide_div">
    <td style="vertical-align:top;">
      Select which options you want to hide
    </td>
    <td>
      <label>A</label>
      <input type="radio" name="hide_div" id="hide_div_A" value="A">
      <br>
      <label>B</label>
      <input type="radio" name="hide_div" id="hide_div_B" value="B">
      <br>
      <label>C</label>
      <input type="radio" name="hide_div" id="hide_div_C" value="C">
      <br>
      <label>D</label>
      <input type="radio" name="hide_div" id="hide_div_D" value="D">
    </td>
  </tr>
  <tr class="show_hide_div_list" style="line-height:1em;">
    <td>
    </td>
    <td>
      <span id="show_hide_div_wrapper">						
				</span>
    </td>
  </tr>
  <tr class="show_hide_div_list">
    <td>
      &nbsp;
    </td>
    <td>
      <button id="show_hide_div_add">Add More</button>
    </td>
  </tr>
</table>

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何根据从外部单选按钮组单击的内容显示或隐藏<option>?

来自分类Dev

单击单选按钮后启用 <select> <option>

来自分类Dev

如何根据单选按钮单击显示和隐藏div?

来自分类Dev

根据单选按钮显示/隐藏内容

来自分类Dev

单击按钮时激活<option>

来自分类Dev

单选按钮显示/隐藏内容

来自分类Dev

单击下拉菜单时如何隐藏默认的<select> <option>?

来自分类Dev

如何根据选中的单选显示/隐藏<div>,未单击

来自分类Dev

如何通过单击单选按钮使用dojo显示/隐藏DIV?

来自分类Dev

如何通过单击单选按钮使用dojo显示/隐藏DIV?

来自分类Dev

如何根据用户选择的单选按钮更改显示内容?

来自分类Dev

单击单选按钮时隐藏/显示选项

来自分类Dev

根据数据在 Select Option 上显示 None

来自分类Dev

根据单选点击显示/隐藏内容

来自分类Dev

根据单选按钮选择显示/隐藏div

来自分类Dev

根据单选按钮选择显示/隐藏div

来自分类Dev

如何根据按钮的值在单击事件上显示/隐藏 Div

来自分类Dev

jQuery clone():原始内容的单选按钮单击显示/隐藏不起作用

来自分类Dev

如何借用对Option <T>内部内容的引用?

来自分类Dev

如何修改`RefCell<Option<T>>`的内容?

来自分类Dev

如何将Option [String]转换为Option [Int]?

来自分类Dev

在Rust中,如何向Option <Option <T >>添加“ flatten”?

来自分类Dev

如何模式匹配Option <&Path>?

来自分类Dev

如何解开 Option[MyClassName]?

来自分类Dev

根据按钮单击隐藏/显示部分

来自分类Dev

显示/隐藏单选按钮上的按钮单击jQuery

来自分类Dev

单击显示或单击外部,或单击同一按钮隐藏

来自分类Dev

AngularJS Material - 使用 md-option 显示/隐藏元素

来自分类Dev

如何通过单击多个单选按钮来隐藏和显示div?

Related 相关文章

  1. 1

    如何根据从外部单选按钮组单击的内容显示或隐藏<option>?

  2. 2

    单击单选按钮后启用 <select> <option>

  3. 3

    如何根据单选按钮单击显示和隐藏div?

  4. 4

    根据单选按钮显示/隐藏内容

  5. 5

    单击按钮时激活<option>

  6. 6

    单选按钮显示/隐藏内容

  7. 7

    单击下拉菜单时如何隐藏默认的<select> <option>?

  8. 8

    如何根据选中的单选显示/隐藏<div>,未单击

  9. 9

    如何通过单击单选按钮使用dojo显示/隐藏DIV?

  10. 10

    如何通过单击单选按钮使用dojo显示/隐藏DIV?

  11. 11

    如何根据用户选择的单选按钮更改显示内容?

  12. 12

    单击单选按钮时隐藏/显示选项

  13. 13

    根据数据在 Select Option 上显示 None

  14. 14

    根据单选点击显示/隐藏内容

  15. 15

    根据单选按钮选择显示/隐藏div

  16. 16

    根据单选按钮选择显示/隐藏div

  17. 17

    如何根据按钮的值在单击事件上显示/隐藏 Div

  18. 18

    jQuery clone():原始内容的单选按钮单击显示/隐藏不起作用

  19. 19

    如何借用对Option <T>内部内容的引用?

  20. 20

    如何修改`RefCell<Option<T>>`的内容?

  21. 21

    如何将Option [String]转换为Option [Int]?

  22. 22

    在Rust中,如何向Option <Option <T >>添加“ flatten”?

  23. 23

    如何模式匹配Option <&Path>?

  24. 24

    如何解开 Option[MyClassName]?

  25. 25

    根据按钮单击隐藏/显示部分

  26. 26

    显示/隐藏单选按钮上的按钮单击jQuery

  27. 27

    单击显示或单击外部,或单击同一按钮隐藏

  28. 28

    AngularJS Material - 使用 md-option 显示/隐藏元素

  29. 29

    如何通过单击多个单选按钮来隐藏和显示div?

热门标签

归档