如何在大于第二个下拉列表时重置第一个下拉列表

时间:2013-11-17 23:53:29

标签: jquery

我有两个下拉列表。以下是两个下拉列表的代码。

<select id="SearchForm_min_cost_select" style="display: none;">
    <option value="0"></option>
    <option value="1lakh">1lakh</option>
    <option value="2lakh">2lakh</option>
    <option value="3lakh">3lakh</option>
    <option value="4lakh">4lakh</option>
    <option value="5lakh">5lakh</option>
    <option value="6lakh">6lakh</option>
</select>
</br>
<select id="SearchForm_max_cost_select" style="display: none;">
    <option value="0"></option>
    <option value="1lakh">1lakh</option>
    <option value="2lakh">2lakh</option>
    <option value="3lakh">3lakh</option>
    <option value="4lakh">4lakh</option>
    <option value="5lakh">5lakh</option>
    <option value="6lakh">6lakh</option>
</select>

我使用下面的jQuery代码创建了一个依赖的下拉列表并且运行正常。此函数在min

中调用
<script>
function cost_change(price) {
    var removed;

    var match = <?php echo json_encode( Yii::app()->params['match_resales']);?>;

    console.log("match",match);

    var value = match[price];

    console.log("value",value);         

    jQuery('#SearchForm_max_cost_select').html( jQuery('#SearchForm_min_cost_select').html())     
    jQuery('#SearchForm_max_cost_select').prepend(removed);

    var toKeep = jQuery('#SearchForm_max_cost_select option').filter( function( ) {
        return parseInt(this.value) > parseInt( price);       
    });        

    console.log("to keep",toKeep);

    removed =  jQuery('#SearchForm_max_cost_select option').filter( function( ) {
        return parseInt(this.value) < parseInt( price);
    });

    jQuery('#SearchForm_max_cost_select').html(toKeep);
}
</script>

现在,当我在第一个下拉列表中选择第二个下拉列表中的最小值小于最小值时,第一个下拉列表的值应该重置为等于秒。假设我选择3lakh in min和2lakh in max,min值应该自动设置为2lakh。怎么做?

1 个答案:

答案 0 :(得分:0)

你实际上需要更多的逻辑来刺激你想要的行为。

<强>演示: http://jsfiddle.net/573Yf/

var i=$('#min'),x=$('#max'),a,b;
$(i).change(function(){
    a=i[0]; b=x[0];
    if(a.selectedIndex>b.selectedIndex) {
        b.selectedIndex = a.selectedIndex;
    }
});
$(x).change(function(){
    a=i[0]; b=x[0];
    if(b.selectedIndex<a.selectedIndex) {
        a.selectedIndex = b.selectedIndex;
    }
});