2010-04-22 3 views
1

Привет, я пытаюсь создать динамические dropdownlists и заполнить содержимое с помощью вызова ajax, этот вид работ в том смысле, что выпадающее меню создается и заполняется по мере необходимости, но его событие «change» не огонь. Я отправляю код ниже, если кто-то может заметить что-то очевидное, вы можете, пожалуйста, дайте мне знать приветJQuery динамическое выпадающее событие не срабатывает

$(document).ready(function() { 

$("#positions select").change(function (e) { 
    alert("in"); 
    var id = $("#category_id").val(); 
    $.getJSON("/Category/GetSubCategories/" + id, function (data) { 
    if (data.length > 0) { 

     alert(data.length); 
     var position = document.getElementById('positions'); 
     var tr = position.insertRow(7); 
     var td1 = tr.insertCell(-1); 
     var td = tr.insertCell(-1); 
     var sel = document.createElement("select"); 
     sel.name = 'sel'; 
     sel.id = 'sel'; 
     sel.setAttribute('class', 'category'); 

     td.appendChild(sel); 
     $.each(data, function (GetSubCatergories, category) { 
     $('#sel').append($("<option></option>"). 
     attr("value", category.category_id). 
     text(category.name)); 

     }); 
    } 
    }); 
    }); 
}); 
+0

спасибо, что он работает – kevin

+0

как получить идентификатор и значение текущего выпадающего списка, которое запускает событие? Спасибо за вашу помощь, а также скорость ответа – kevin

+0

, пожалуйста, см. Мой отредактированный ответ. – rahul

ответ

3

Если выпадающий динамически генерируется, то вы должны связать событие изменения с помощью .live() обработчик. live() присоединяет обработчик события для всех элементов, которые соответствуют текущему селектору, сейчас или в будущем.

$("positions select").live("change", function(){ 
}); 

Редактировать

Чтобы получить идентификатор

$(this).attr("id"); 

Чтобы получить значение

$(this).val(); 

Чтобы получить имя класса

$(this).attr("class"); 

внутри изменение мероприятие обработчик.

+0

Здравствуйте, Как я могу получить идентификатор и значение, а также имя класса элемента/dropdownlist, в настоящее время запускающего это событие? $ ("# position select"). Live ("change", function() { } – kevin

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