У меня есть таблица, которую я динамически заполняю через функцию ajax.Итерация через таблицу для поиска
<!-- Tab4 -->
<div id="ServiceOrderTasks" class="tab-pane">
<div class="widget white-full">
<div class="widget-body">
<div class="row-fluid">
<!-- BEGIN COLUMN -->
<div class="span12">
<!--BEGIN LABEL & BADGE PORTLET-->
<table id="tasktable" class="table table-bordered table-striped">
<thead>
<tr>
<th colspan="2">Service Order Task</th>
<th>Status</th>
</tr>
</thead>
<tbody id="taskTableContents">
</tbody>
</table>
<!--END LABEL & BADGE PORTLET-->
</div>
<!-- END COLUMN -->
</div>
</div>
</div>
</div>
Код Аякса записывает содержимое
function GetServiceOrderDetailsOnComplete4(result) {
var content = "";
$('#taskTableContents > tbody').empty();
var records = result.split("*");
var len = records.length - 1;
var id_name = "";
var field = "";
for (var i = 0; i < len; ++i) {
var record = records[i].split("|");
id_name = "";
id_name = "taskID|" + record[0] + "|" + record[1];
field = record[38].trim();
if (field == "1") {
content = content + "<tr><td colspan='2'>" + record[2] + "</td>" +
"<td>" +
" <select name='" + id_name + "' id='" + id_name + "' data-role='slider' data-mini='true'>";
switch (record[14]) {
case "0":
content = content + " <option value=1>Completed</option>" +
" <option value=0 selected>Incomplete</option>" +
" <option value=0>Not Applicable</option>";
break;
case "1":
content = content + " <option value=1 selected>Completed</option>" +
" <option value=0>Incomplete</option>" +
" <option value=0>Not Applicable</option>";
break;
case "2":
content = content + " <option value=1>Completed</option>" +
" <option value=0>Incomplete</option>" +
" <option value=0 selected>Not Applicable</option>";
break;
default:
content = content + " <option value=1>Completed</option>" +
" <option value=0 selected>Incomplete</option>" +
" <option value=0>Not Applicable</option>";
break;
}
content = content + " </select>" +
"</td>" +
"</tr>";
};
};
$("#taskTableContents").append(content);
}
function GetServiceOrderDetailsOnFail(result) {
}
Хотя довольно грязный, код выше работ.
Возникает вопрос: мне нужно пройти через стол и получить каждую из строк.
Существует некоторый условный код, который устанавливает флаг на основе выбранного значения.
// $('#tasktable > tbody > tr > td > select').each(function() {
$('#taskTableContents > tbody > tr > td > select').each(function() {
var parms = this.id.split("|");
var sor = parms[1];
var seq = parms[2];
var v = $(this).val(); // will get the value correctly
switch (v) {
case "0":
// UpdateServiceOrderDetailStatus(sor, seq, 0);
okToClose = false;
break;
case "1":
UpdateServiceOrderDetailStatus(sor, seq, 1);
break;
case "2":
// UpdateServiceOrderDetailStatus(sor, seq, 0);
okToClose = false;
break;
}
});
Во время выполнения кода, отладчик получает эту линию и переходит непосредственно к okToClose = ложной линии.
$('#taskTableContents > tbody > tr > td > select').each(function() {
Что мне не хватает?
Когда вы запускаете код, который ищет таблицу? Это в обработчике событий? – Barmar
yes - выполняется, когда пользователи нажимают кнопку – pithhelmet
. Ваша петля установит 'okToClose = false', если ** any ** выпадающих списков установлены на' 0' или '2'. – Barmar