我有倍12:00 AM在兩個選擇元件通過下午11點45分卸下選擇項目,取決於所選項目
都選擇具有內部包括文本和值相同的選項。是否有可能例如說我選擇了第一次選擇的下午1:00以在第二次選擇的下午1:00之前刪除所有選項?我知道我可以檢測到與jquery變化
$('#select1').change(function(){
// in here do something to remove previous selects
});
任何幫助將不勝感激。
我有倍12:00 AM在兩個選擇元件通過下午11點45分卸下選擇項目,取決於所選項目
都選擇具有內部包括文本和值相同的選項。是否有可能例如說我選擇了第一次選擇的下午1:00以在第二次選擇的下午1:00之前刪除所有選項?我知道我可以檢測到與jquery變化
$('#select1').change(function(){
// in here do something to remove previous selects
});
任何幫助將不勝感激。
試試這個
$('#select1').change(function(){
var value = $(this).val();
$("#selectId > option").each(function() {
if(value > this.value)
$("#selectId option[value=this.value]").remove();
});
});
但值必須按升序排列的選擇框
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;
}
});
});
});
這裏是另一個同一個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));
});
});
});
嘗試
$('#select1').change(function(){
var $this = $(this);
var index = $('option:selected', $this).index();
$('#select2 option').show().filter(':lt(' + index + ')').hide();
})
演示:Fiddle