Я пытаюсь написать функцию jquery, которая сканирует весь jqrid, чтобы проверить, имеет ли какая-либо из его ячеек значение.
Проблема, с которой я столкнулся, заключается в том, что, похоже, нет способа извлечь выбранное значение ячейки, содержащей поле выбора. В jqgrid docs четко указано следующее для методов getCell
и getRowData
.
Не используйте этот метод, когда вы
редактирование строки или ячейки. Это будет
вернуть содержимое ячейки, а не
Фактическое значение элемента ввода
Что достаточно справедливо, но, учитывая это, как мне получить значение?
Невозможно проанализировать HTML-код, возвращаемый из выбранного содержимого, так как ни один из параметров не помечен как выбранный, даже если они отображаются выбранными в браузере.
Для справки приведен фрагмент моего кода:
var colModels = this.grid.jqGrid('getGridParam', 'colModel');
for (i = 1; i < colModels.length; i++) {
var colModel = colModels[i];
if (colModel.edittype == 'select') {
var colData = this.grid.jqGrid('getCol', colModel.name, false);
for (j = 0; j < colData.length; j++) {
if (colData[j] != 0) {
//alert("select change: " + colData[j]);
//alert(j+' GridName_' + colModel.name)
//alert("select change: " + $('#GridName_' + colModel.name).val());
//return has value?;
}
}
}
}
Определение столбца:
{ name: "AppleId", index: "Appled", width: 150, align: "left", resizable: false, editable: true, edittype: "select", editoptions: { value: function() { return xxx.buildAppleSelect(); } }, formatter: function(cellvalue, options, rowObject, action) { return xxx.buildAppleSelectHtml(cellvalue); } };
Я также экспериментировал с afterEditCell и другими подобными событиями - но проблема с ними заключается в том, что - нажатие на поле выбора не переводит продажу в режим редактирования - сначала нужно щелкнуть ячейку, а затем выберите.
Вкратце - как получить выбранное значение на стороне клиента - можно ли это сделать?
Здесь есть вопросы здесь , здесь и здесь . Но, похоже, никто не решает проблему (на стороне клиента).