2011-01-29 59 views
2

顯示我有一些選項的選擇元件:設置一個選項,以在第一位置使用jQuery

<select id="choose"> 
    <option id="first" value='null'>choose</option> 
    <option id="g1" value='1'>gate1</option> 
    <option id="g2" value='2'>gate2</option> 
</select> 

用戶選擇一個選項並提交表單。數據被存儲。 無論用戶何時回來,我都希望先前保存的選項在select元素的頂部顯示 ,而不是選擇。

我這樣做這種方式

$("#choose").val("2"); 

它只是強調列表中的選項,但選擇仍然是第一個元素。我如何實現這一目標?

+0

您可以使用PHP設置cookie,然後取該cookie,如果有一,處理它,然後把這個選項放在 – 2011-01-29 20:50:35

+0

有沒有一個服務器端呢?你如何加載HTML中的選項?或者他們是硬編碼的? – Victor 2011-01-29 20:50:37

回答

4

聽起來像你想他們選擇它後,所選擇的項目移動到頂部。

只需綁定到更改事件和發現所選擇的選項,它前面加上到#choose

var choose = $("#choose").bind('change',function(){ 
    choose.find('option:selected').prependTo(choose); 
}); 

http://jsfiddle.net/petersendidit/ZuhqS/1/

0

prepend應該做的伎倆:

var choose = $('#choose'); 
choose.val(2).prepend(choose.find('[value="2"]')); 
1
var prevSelVal = 2; 
if(prevSelVal!=0){ 
    var elem = $('#g' + prevSelVal).remove(); 
    $('#first').remove(); 
    $('#choose').prepend(elem); 
} 

上面的代碼從列表中刪除,並在頂部的地方它的元素。它也會刪除你的「選擇」元素。

0

請參見:http://jsbin.com/ipewe/edit 下面是一個示例...

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> 
<head> 
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script> 
<title>Sandbox</title> 
<meta http-equiv="Content-type" content="text/html; charset=utf-8" /> 
<style type="text/css" media="screen"> 
body { background-color: #000; font: 16px Helvetica, Arial; color: #fff; } 
</style> 
</head> 
<body> 
    <p>Hello from JS Bin</p> 
    <p id="hello"></p> 
    <select> 
<option value="1" >Number 1</option> 
<option value="2" selected="selected">Number 2</option> 
<option value="3" >Number 3</option> 
<option value="4" >Number 4</option> 
</select> 
<script type="text/javascript"> 
$('option:selected', 'select').removeAttr('selected').next('option').attr('selected', 'selected'); 
</script> 

</body> 
</html> 
相關問題