2014-04-23 11 views
0

我正在通過jQuery append()函數創建一個動態的<select>元素,但我似乎無法獲得正確的選定值。我總是得到第一個選項,這是1.我正在嘗試配置Aloha編輯器,這可能與該問題有關。jQuery val()在動態模式下無法正常工作<select>使用Aloha編輯器

這是select元素,附加在側欄中。

$('.aloha-sidebar-inner').append('<select id="columns"><option value="1">1 Column</option><option value="2">2 Columns</option><option value="3">3 Columns</option><option value="4">4 Columns</option></select>').trigger('create'); 

如前所述我用阿羅哈編輯器,因此jQuery的是這樣的:

Aloha.ready(function() { 
      $('.aloha-sidebar-inner').append('<button id="add-section" class="btn aloha-sidebar-btn sidebar-item" type="button" onclick="addSection(document.getElementById(\'articles\').value);">Add Section</button>'); 
      $('.aloha-sidebar-inner').append('<p>Number of Columns:</p>'); 
      $('.aloha-sidebar-inner').append('<select id="articles" class="sidebar-item"><option>1</option><option>2</option><option>3</option><option>4</option></select>'); 
    }); 

     function addSection() {  
      var idCounter = 0; 
      alert($('#articles').val()); 
}; 

的警告窗口,因爲我動態創建的選擇元素不斷返回值1。也許有一個問題?

我已經嘗試過使用$("#columns option:selected").val();但仍然沒有。我甚至嘗試使用text(),但仍然沒有; alert不斷返回第一個選項。

我也嘗試過使用$('#add-section').click$('#articles').change聽衆,但他們似乎沒有迴應。

+2

上創建您的問題的工作演示請http://jsfiddle.net。第一個選項*應該*被默認選中,所以目前還不清楚爲什麼你期望它不同於此。 – Blazemonger

+1

ID是唯一的,對吧?! –

+3

這裏工作得很好:http://jsfiddle.net/uJur9/1/你有什麼提醒? onclick或onchange等? – Anton

回答

0

獲取所選列使用下面的代碼

$('#columns').change(
    function() 
    { 
     alert($('#columns').val()); 
    }); 

小提琴:jsfiddle.net/EnJz5

5

I answered這個問題最後:

$('#columns').change(function() { 
    var optionSelected = $(this).find("option:selected"); 
    var valueSelected = optionSelected.val(); 
    var textSelected = optionSelected.text(); 
    }); 
+2

我有這個完全相同的問題。這對我很好。 – DEUTSCHWULF

+0

這是我的榮幸DEUTSCHWULF! – Bellash

相關問題