2014-04-23 12 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

相关问题