У меня в коде javascript несколько селекторов. Одним из них является триггером для генерации другой селектор:Динамические селекторы/параметры HTML не отправляются в форме
<form id="reportform" name="reportform" action="">
<table cellpadding="3" cellspacing="16">
<thead>
<th class="report" colspan="2">Select Scope</th>
<th class="report" colspan="2">Select Date</th>
<th class="report" colspan="2">Options</th>
</thead>
<tbody>
<tr>
...
<td>
Period
</td>
<td>
<select id="period" name="period">
<option selected="selected" value="0">- Select -</option>
<option value="1">Day</option>
<option value="2">Month</option>
<option value="3">Year</option>
</select>
</td>
...
</tr>
...
<tr>
<td></td>
<td></td>
<td id="date-label2"></td>
<td id="date2"></td>
<td></td>
<td></td>
</tr>
<tr>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td align="right">
<input id="go" class="go" type="submit" value="Report">
</td>
</tr>
</tbody>
</table>
</form>
Когда один из вариантов в период выбора выбирается одна функция выполняется:
$('#period').change(function() {
switch($('#period').find(":selected").text()){
case 'Day':
clearDates();
var label = document.getElementById("date-label");
var txt = document.createTextNode("day");
label.appendChild(txt);
var day = document.getElementById("date");
var input = document.createElement("input");
input.className = "day-report";
day.appendChild(input);
break;
case 'Month':
...
case 'Year':
...
}
});
Функции, используемые здесь:
function clearDates(){
var date = document.getElementById("date-label");
while (date.hasChildNodes()) {
date.removeChild(date.lastChild);
}
date = document.getElementById("date");
while (date.hasChildNodes()) {
date.removeChild(date.lastChild);
}
date = document.getElementById("date-label2");
while (date.hasChildNodes()) {
date.removeChild(date.lastChild);
}
date = document.getElementById("date2");
while (date.hasChildNodes()) {
date.removeChild(date.lastChild);
}
}
Дело в том, что когда я нажимаю кнопку «Отправить», я не вижу динамических элементов формы, сериализованных, и я полагаю, что их не будет отправлять на сервер.
$(function(){
$("#reportform").submit(function(event){
event.preventDefault();
alert(JSON.stringify($('form').serializeObject()));
return false;
});
});
Возможно, форма получает эти динамические поля? Заранее спасибо
Совершенно верно. Я решил это добавить 'input.name =" day ";'. Спасибо. – Spacemonkey