2012-04-24 80 views
1

我正在動態設置選擇字段的選項。每次表單更改時,都會從Servlet接收新數據,並且當前選擇會被覆蓋。在重建選項列表時丟失選擇選項的焦點

這裏的問題是,如果我選擇一個選項,表單加載JavaScript函數,並且我鬆開了我的選擇/焦點。

var capacityOptionsAsString = ""; 
for(var i = 0; i < capacityArray.length; i++) { 
    capacityOptionsAsString += "<option value='" + capacityArray[i] + "'>" + capacityArray[i] + "</option>"; 
    console.log('capacity option: ' + capacityOptionsAsString); 
} 
$("select[name='inptCapacity']").find('option').remove().end().append($(capacityOptionsAsString)); 

任何想法如何保持選擇?


編輯:也許我還不夠清楚。我想保留選擇。所以它必須被驗證,如果選擇了該選項,如果它是,我們必須再次選擇它。

+0

你是什麼 '的形式加載javascript函數' 是什麼意思? – thecodeparadox 2012-04-24 09:18:57

+0

$('form [name =「formName」]:input')。change(function(){} – doonot 2012-04-24 09:19:36

+0

您的意思是'輸''對嗎? – 2012-12-28 00:54:10

回答

0

只需設置一次焦點:

$("select[name='inptCapacity']").focus(); 

更新

得到選定的選項:

var selected_value = $("select[name='inptCapacity'] option:selected").val() 

做更改

$("select[name='inptCapacity']").find('option').remove().end().append($(capacityOptionsAsString)); 

再次選擇它:

$('select[name='inptCapacity'] option[value="' + selected_value + "]').attr('selected', 'selected'); 

你完全需要爲您選擇一個ID;)

+0

''如何找出當前的焦點? – doonot 2012-04-24 09:12:03

+0

'$ 「select [name ='inptCapacity']」)。is(「:focus」)'http://stackoverflow.com/questions/967096/using-jquery-to-test-if-an-input-has-focus – PiTheNumber 2012-04-24 09:13:25

+0

@dooonot'$(...)。'(':focus')' – gdoron 2012-04-24 09:13:33

0
$('select[name="inptCapacity"]').is(':focus'); 

$('form[name="formName"] :input').change(function() { 

    // keep the select focus always on input change 

    $('select[name="inptCapacity"]').focus(); 

}); 
相關問題