【问题标题】:dropdown value change according to radio button根据单选按钮更改下拉值
【发布时间】:2013-12-18 14:42:06
【问题描述】:

这是一个任务,当我选择“12 小时”单选按钮然后在上午 1 点至下午 12 点和下午 1 点至下午 12 点下拉值变化,当我选择 24 小时时,我的值在 1-24 变化。

我的代码是:

<script src="http://code.jquery.com/jquery-1.7.2.min.js"></script>
<script>
  var listA = [{name:'1am', value:'1am'}, {name:'2am', value:'2am'}, {name:'3am', value:'3am'}];

  var listB = [{name:'12', value:'12'}, {name:'13', value:'13'}, {name:'14', value:'14'}];
</script>
<script>
  $(document).ready( function() {
    $(':radio').bind('click',function(){
      $('#describe')
        .find('option')
        .remove()
        .end();
      $.each(listA, function(index, value) {
        $('#describe').append('<option value="'+value.value+'">'+value.name+'</option>');
      });
    });
  });
</script>

为此的HTML代码:

<div>
  <select id="describe">
    <option name="name" value="1">a</option>
    <option name="name" value="2">b</option>
  </select>
</div>
<div>
  <input type="radio" id="class" name="type" value="1" checked>12 hour <br/>
  <input type="radio" id="Club" name="type" value="2" >24 hour<br/>
</div>

希望你能理解我的问题。

【问题讨论】:

  • 请尽可能提供小提琴,在那里很容易测试和更新
  • 根据单选按钮更改值。当您单击单选按钮 1 时,下拉菜单有不同的值,如果您选择下拉菜单 2,则下拉菜单的值不同。下拉菜单是单一的。
  • 对不起,我可以提供小提琴:(

标签: javascript jquery html


【解决方案1】:

你可以有这样的东西:

<script>
  var listA = [{name:'1am', value:'1am'}, {name:'2am', value:'2am'}, {name:'3am', value:'3am'}];
  var listB = [{name:'12', value:'12'}, {name:'13', value:'13'}, {name:'14', value:'14'}];
</script>

<script>
  $(document).ready( function() {
    $('#class').bind('click', function() {
      $('#describe').empty();                              
      $.each(listA, function(index, value) {
        $('#describe').append('<option value="'+value.value+'">'+value.name+'</option>');
      });
    });

    $('#Club').bind('click', function(){
      $('#describe').empty();                              
      $.each(listB, function(index, value) {
        $('#describe').append('<option value="'+value.value+'">'+value.name+'</option>');
      });
    });
  });
</script>

希望对你有所帮助。

【讨论】:

【解决方案2】:

试试这个

HTML

<div>
  <select id="describe">
    <option name="name" value="1">a</option>
    <option name="name" value="2">b</option>
  </select>
</div>
<div>
  <input type="radio" id="class" name="chk" value="12" checked>12 hour <br/>
  <input type="radio" id="Club" name="chk" value="24" >24 hour<br/>
</div>

脚本

var listA = [{name:'1am', value:'1am'}, {name:'2am', value:'2am'}, {name:'3am', value:'3am'}];

 var listB = [{name:'12', value:'12'}, {name:'13', value:'13'}, {name:'14', value:'14'}];

  $(document).ready( function() {
      $("input[name='chk']").on('change',function() {

          if($(this).is(':checked') && $(this).val() == '12')
          {
            $('#describe').empty()
            $.each(listA, function(index, value) {
             $('#describe').append('<option value="'+value.value+'">'+value.name+'</option>');
            });                  
          }
          else if($(this).is(':checked') && $(this).val() == '24')
          {
            $('#describe').empty()
            $.each(listB, function(index, value) {
             $('#describe').append('<option value="'+value.value+'">'+value.name+'</option>');
            }); 
          }
          else
          {

          }

    });
 });  

DEMO

【讨论】:

    【解决方案3】:

    您只需要更改现有代码的 3 行

    先将两个列表合二为一,像这样

    var list = [ 
      [{name:'1am', value:'1am'}, {name:'2am', value:'2am'}, {name:'3am', value:'3am'}],
      [{name:'12', value:'12'}, {name:'13', value:'13'}, {name:'14', value:'14'}]
    ];
    

    然后在单选点击事件中,获取单选按钮索引,像这样

      var index = $(this).val()-1;
    

    然后用上面的列表改变你的列表,像这样

       $(document).ready( function() {
          $("input[type='radio']").on('change',function() {
              var index = $(this).val()-1;
              $('#describe').empty()
              $.each(list[index], function(index, value) {
               $('#describe').append('<option value="'+value.value+'">'+value.name+'</option>');  
              });
          });
    });  
    

    【讨论】:

    【解决方案4】:
    $('#describe').val($(this).val()); 
    

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-06
    • 1970-01-01
    • 2018-10-22
    • 2018-03-24
    • 2021-04-03
    相关资源
    最近更新 更多