2012-07-27 2 views
0

У меня есть опция строки в моей форме, где пользователь может добавить столько строк, сколько захочет, а затем отправить все сразу через ajax.Итерация через отдельные поля в таблице jQuery

Каждая строка содержит поле выбора и множество текстовых полей.

Текстовые поля отправляются правильно, но моя форма только отправляет значение поля выбора в самой первой строке для всех остальных строк, хотя значения разные.

Объяснив мой вопрос правильно (hoepfully), вот код HTML кода для выбора коробки:

<td><span id="xyz"><select id="whatever"> 
<option value="one">ONE</option> 
<option value="two">TWO</option> 
<option value="three">THREE</option> 
</select> 
</span></td> 

и после разных кодов версия коды для JQuery, чтобы забрать все выбрать значения коробков :

$("#table tbody tr").each(function(){ 

var select = $(this).find("td:eq(0)").find("select#whatever).val(); 
//etc 
} 

или

$("#table tbody tr").each(function(){ 

var select = $("select#whatever).val(); 
//etc 
} 

или

$("#table tbody tr").each(function(){ 

var select = $(this).find("td:eq(0)").find("select#whatever option:selected").val(); 
//etc 
} 

или

$("#table tbody tr").each(function(){ 

var select = $(this).find("td:eq(0)").find("select#whatever").val(); 
//etc 
} 

или

$("#table tbody tr").each(function(){ 

var select = $(this).find("td:eq(0)").find("select").val(); 
//etc 
} 

или

$("#table tbody tr").each(function(){ 

var select = $(this).find("td:eq(0).xyz").find("select#whatever").val(); 
//etc 
} 

или

$("#table tbody tr").each(function(){ 

var select = $(this).find("td:eq(0).dropdown select#whatever").val(); 
//etc 
} 


$("#table tbody tr").each(function(){ 

var select = $(this).find("td:eq(0)").find("select#whatever").val(); 
//etc 
} 

или

$("#table tbody tr").each(function(){ 

var select = $("select#whatever option:selected").val(); 
//etc 
} 

или

$("#table tbody tr").each(function(){ 

var select = $("select option:selected").val(); 
//etc 
} 

Прежде всего это различные версии кода, если я правильно помню, я уже пробовал в IE 8, без особого успеха.

Они отлично работают в других браузерах, таких как IE 9 и firefox.

Loop работает нормально, так как я могу получить другие значения полей ввода.

Я также попробовал html select boxe без атрибута id, но также не работал.

Мне действительно нужна чья-то помощь здесь.

Благодаря гению заранее.

Mark.

ответ

1

Я думаю, что вы ищете это:

var selectValue = $(this).find("td:eq(0)").find("select option:selected").val();

0

Предполагая, что есть только один выберите поля в строку, это должно работать:

var values = $("#table select").map(function(){ 
    return $(this).val(); 
}).get(); 

Если у вас есть более сложная разметка и там вам нужно только получить значения из первой ячейки в каждой строке, вы можете изменить селектор на

$('#table td:first-child select') 
Смежные вопросы