2013-06-15 2 views
0

Я получаю списки пользователей в базе данных с jquery ajaxt и создаю тег select, после размещения этого тега в теге html. I can not get option selectable value in absolute.jQuery получить значение опциона в абсолютном

HTML:

<td> 
    <span id='author_name'></span> 
</td> 

JQuery:

$.post("model/controller.php", {postaction:'getUserList'}, 
     function(data){ 
      userList = data.userList; 
      author_name = "<ul class='styledlist' ><select id='userList' style='height:26px;width:110px;margin-right:-8px;' >" 
      $.each(userList,function(i , item){ 
       author_name += "<option value='" + userList[i].id + "' >" + userList[i].username +"</option>"; 
      }); 
      author_name += "</select></ul>"; 
      $("#author_name").html(author_name); 
     },'json'); 
    $('#submenu_1_1').click(function(){ 
      $("#tab_content").on('author_name', function(event){ 
       alert($(this).val()); 
      });     
    }); 
+0

Неясно, что вы пытаетесь сделать здесь? 'author_name' - это не событие, а идентификатор элемента, который является диапазоном, который не имеет значения? – adeneo

+0

какой тип данных поступает в переменную данных? это json закодировано? если да, то это будет userlist = $ .parseJSON (данные); если данные не находятся в формате json, вы уверены, что это происходит в $ .each? Я хочу знать действительно ли data.userList существует и имеет некоторые значения? –

+0

@VivekMuthal, 'data.userList' является json-форматом, и это не моя проблема, моя проблема - получить значение опции,' select' может создать успешное в '$ .each' –

ответ

0

Вы должны пересвязать click() функцию после вставки <select> в DOM, для <select>, вам нужно вместо этого использовать событие change. Изменить это:

$("#author_name").html(author_name); 

к этому:

$("#author_name").html(author_name) 
$("#userList").on("change",function(){ 
    alert($(this).val()); 
}); 
+0

не работает, '$ (" # author_name "). Val()' return empty, в старой версии jquery я не могу попробовать с .live() ', но я не могу использовать' .on' в латст-версии –

+0

['. on() '] (http://api.jquery.com/on/) для jQuery 1.7 и новее. Вы не должны использовать какую-либо версию jQuery старше 1.7. – Mooseman

Смежные вопросы