2009-08-27 1 views
2

У меня есть стол с кучей строк. В последнем столбце каждой строки есть выпадающий список. Когда выпадающее меню изменяется, мне нужна новая строка таблицы, которая появится ниже строки, в которой пользователь выбрал выпадающий элемент. Однако мне также нужна новая строка для разных данных в зависимости от того, что было выбрано в раскрывающемся списке.Как добавить строку под текущей выбранной строкой (на основе выпадающего ввода) с помощью jQuery?

Возможно ли это, используя только jQuery?

Обратите внимание, что я использую ASP.NET для разработки на заднем плане, поэтому, если решение можно найти без использования идентификаторов, это было бы здорово.

ответ

4
$("table select").live("click",function(){ 
var row=$(this).parent().parent();//add some .parent() untill you get the TR element 
var val=$(this).val(); //<select> value if you want to use it for some conditions 
$("<tr><td>....</td></tr>").insertAfter(row); 
}) 
+0

Это работает отлично! Спасибо! Теперь, что, если я хочу немного изменить это так, чтобы оно срабатывало при нажатии кнопки. Я изменил «table select» на «table input», но я не уверен, как читать значение раскрывающегося списка ... – Bara

+0

Я думаю, что это будет сложно, но попробуйте изменить событие «click» с событием «change» в сценарии, и я думаю, что это может быть уже хорошим решением без добавления кнопок – mck89

+0

Собственно, я понял это, изменив значение val: var val = $ ('select', $ (this) .parent()). val(); Кажется, что все работает нормально! Большое спасибо за помощь! – Bara

0

Достаточно просто добавить HTML, используя JQuery. Однако, если вы намерены сохранить эти данные на сервере, процесс ASP.NET по умолчанию (используя ViewState) будет игнорировать новые строки. Вместо этого вам нужно будет непосредственно прочитать представленные свойства формы.

Чтобы узнать, как добавить строку, обратите внимание на предложения здесь: How to add a new row to a specified table with jQuery?