0
<div class="deals_options">
    Choose: 
    <?php
    echo '<select name="chosen_options[]">';
    foreach($deals_options as $option)
    {
    echo '
    <option value="'.$option['value'].'">'.$option['displaytext'].'</option>
    ';
    }
    echo '</select>';
    ?>
</div>

这是我目前拥有的。这会输出一个选择,显示此交易报价存在的选项,您可以在其中进行选择。

现在对于交易要约,您还可以选择所需的交易要约数量。我想这样做,它会显示与您选择的交易报价一样多的选择器。

例如,如果您在 How many deal 报价中选择了 3,那么它应该显示您可以选择的 3 个选择器。

这是一个例子:

http://jsfiddle.net/LWayp/

这是行不通的,所以当您选择一个数量时,什么也没有发生,但正如您所见,HTML/输出是我希望它工作的方式。当您选择 3 时,它会显示其中的 3 个选择器。

4

3 回答 3

1

这应该工作

$(function(){

    $(".deals_options select").hide();    
    $('.deals_amount').change(function() {        
        $(".deals_options select").hide();

        var amount = $(this).val();

        var counter=0;
        $(".deals_options select").each(function(){
          if(counter<amount)
          {                          
            $(this).show();
            counter++            
          }
          else
          {
           // We dont want .each loop to run any more. So lets return !
            return false;               
          } 
        });
    });
})

工作样本:http: //jsfiddle.net/LWayp/11/

于 2012-04-12T19:13:24.387 回答
1

编辑:如果您想从 DOM 中添加/删除,请参见下面的代码,DEMO

  $('.deals_amount').change(function() {
    var amount = $(this).val();
    var selectCount = $('.deals_options select').length;
    if (amount < selectCount) { //remove
        $('.deals_options select:gt(' + (amount - 1) + ')').remove();
    } else {
        var $orig = $('.deals_options select:first');
        for (var i = 0; i < Math.abs(amount - selectCount); i++) {
            $orig.clone().insertAfter('.deals_options select:last');
        }
    }
}).change(); //<-- Triggered on load to populate with what it was set

或者,您也可以根据交易金额选择显示/隐藏,

演示

    $('.deals_options select').each(function () {
        if ($(this).index() < amount) {
            $(this).show();
        } else {
            $(this).hide();
        }
    });
于 2012-04-12T19:13:33.287 回答
0

你的意思是这样的吗?

http://jsfiddle.net/LWayp/7/

于 2012-04-12T19:11:53.610 回答