2013-04-18 85 views
1

我有倍12:00 AM在兩個選擇元件通過下午11點45分卸下選擇項目,取決於所選項目

都選擇具有內部包括文本和值相同的選項。是否有可能例如說我選擇了第一次選擇的下午1:00以在第二次選擇的下午1:00之前刪除所有選項?我知道我可以檢測到與jquery變化

$('#select1').change(function(){ 

// in here do something to remove previous selects 

}); 

任何幫助將不勝感激。

回答

0

試試這個

$('#select1').change(function(){ 

var value = $(this).val(); 
$("#selectId > option").each(function() { 
    if(value > this.value) 
     $("#selectId option[value=this.value]").remove();  
});  
}); 

但值必須按升序排列的選擇框

0

HTML:

<select id="select1"> 
    <option value="1">11h00</option> 
    <option value="2">11h15</option> 
    <option value="3">11h30</option> 
    <option value="4">11h45</option> 
    <option value="5">12h00</option> 
    <option value="6">12h15</option> 
    <option value="7">12h30</option> 
    <option value="8">12h45</option> 
    <option value="9">13h00</option> 
</select> 

<select id="select2"> 
    <option value="1">11h00</option> 
    <option value="2">11h15</option> 
    <option value="3">11h30</option> 
    <option value="4">11h45</option> 
    <option value="5">12h00</option> 
    <option value="6">12h15</option> 
    <option value="7">12h30</option> 
    <option value="8">12h45</option> 
    <option value="9">13h00</option> 
</select> 

JS:

$(document).ready(function(){ 
    $('#select1').change(function(){ 
    var val = $(this).find('option:selected').prop('value'); 

    $('#select2').find('option').show().each(function(){ 
     if($(this).prop('value') <= val){ 
     $(this).hide(); 
     } 
     else{ 
     return false; 
     } 
    }); 
    }); 
}); 
1

這裏是另一個同一個wh的版本ERE我們允許用戶更改他的第一選擇仍然過濾第二選擇正確

$(document).ready(function() { 
    var to_mins = function(x) { 
    var p = x.split(':').map(function(v) { return parseInt(v, 10); }); 
    return (p[0] * 60) + p[1]; 
    }; 
    $('#second').data('options', $('#second').find('option').toArray()); 
    $('#first').change(function() { 
    var val = to_mins(this.value); 
    console.log(val); 
    $('#second').empty(); 
    $('#second').data('options').filter(function(v) { 
     return to_mins(v.value) > val; 
    }).map(function(v) { 
     $('#second').append(v.cloneNode(true)); 
    }); 
    }); 
}); 
1

嘗試

$('#select1').change(function(){ 
    var $this = $(this); 
    var index = $('option:selected', $this).index(); 
    $('#select2 option').show().filter(':lt(' + index + ')').hide(); 
}) 

演示:Fiddle