Jqgrid сохраняет фокус на текущей ячейке при использовании editrules - PullRequest
2 голосов
/ 18 ноября 2011

Во-первых, я собираюсь представить пару разных вопросов, связанных с фрагментом кода, размещенным здесь.Так что, если вы видите другие вопросы и думаете: «Эй, это дубликат, я видел этот код», это действительно не так.Я хочу быть уверен, что благодарю каждого отвечающего за совершенно разные вопросы.Вот один из них: у меня есть следующий jqgrid, и я пытаюсь изменить маскирование с "__" на "00", когда пользователь вводит только первую половину поля.Метод вызывается, значение изменяется, но оно по-прежнему отображает старое значение.Я использую jqgrid версии 4.2.Сетка:

WorkSchedule.prototype.init = function() {
        var self = this;
        self.jqgridParms = {
            datatype: "local",
            height: 'auto',
            width: 700,
            colNames: ["Week", "Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Total"],
            colModel: [// very much dummy stuff here.
                        {name: "Week", index: "Week", width: 50, editable: false },
                       { name: "Sun", index: "Sun", width: 85, editable: true, edittype: "text", editoptions: { size: 20, maxlength: 30,
                           dataInit: function(elem) {
                               $(elem).mask("99:99");
                           }
                       }, align: "center", formatter: timeEntryFormat, editrules: { custom: true, custom_func: validHourEntry }
                       },
                        { name: "Mon", index: "Mon", width: 85, editable: true, edittype: "text", editoptions: { size: 20, maxlength: 30,
                            dataInit: function(elem) {
                                $(elem).mask("99:99");
                            }
                        }, align: "center", formatter: timeEntryFormat, editrules: { custom: true, custom_func: validHourEntry }
                        },
                        { name: "Tues", index: "Tues", width: 85, editable: true, edittype: "text", editoptions: { size: 20, maxlength: 30,
                            dataInit: function(elem) {
                                $(elem).mask("99:99");
                            }
                        },
                            align: "center", formatter: timeEntryFormat, editrules: { custom: true, custom_func: validHourEntry }
                        },
                        { name: "Wed", index: "Wed", width: 85, editable: true, edittype: "text", editoptions: { size: 20, maxlength: 30,
                            dataInit: function(elem) {
                                $(elem).mask("99:99");
                            }
                        },
                            align: "center", formatter: timeEntryFormat, editrules: { custom: true, custom_func: validHourEntry }
                        },
                        { name: "Thurs", index: "Thurs", width: 85, editable: true, edittype: "text", editoptions: { size: 20, maxlength: 30,
                            dataInit: function(elem) {
                                $(elem).mask("99:99");
                            }
                        },
                            align: "center", formatter: timeEntryFormat, editrules: { custom: true, custom_func: validHourEntry }
                        },
                        { name: "Fri", index: "Fri", width: 85, editable: true, edittype: "text", editoptions: { size: 20, maxlength: 30,
                            dataInit: function(elem) {
                                $(elem).mask("99:99");
                            }
                        },
                            align: "center", formatter: timeEntryFormat, editrules: { custom: true, custom_func: validHourEntry }
                        },
                        { name: "Sat", index: "Sat", width: 85, editable: true, edittype: "text", editoptions: { size: 20, maxlength: 30,
                            dataInit: function(elem) {
                                $(elem).mask("99:99");
                            }
                        },
                            align: "center", formatter: timeEntryFormat, editrules: { custom: true, custom_func: validHourEntry }
                        },
                        { name: "WeekTotal", index: "WeekTotal", width: 55, editable: true, align: "center" }
                      ],
            multiselect: false,
            caption: "Manage Work Schedule",
            rowNum: 10,
            cellEdit: true,
            gridComplete: function() {
                calculateTotal();
            },
            beforeSaveCell: function(rowid,cellname,value,iRow,iCol) {
            formatFromMask(rowid, cellname, value, iRow, iCol);
            },
            afterSaveCell: function() {
                calculateTotal();
            },
            cellsubmit: "clientArray"
        }
}



 function formatFromMask(rowid, cellname, value, iRow, iCol) {
            if (typeof value !== "undefined") {
                value = value.replace(/_/g, "0");
return value;
            }
        }

1 Ответ

0 голосов
/ 01 декабря 2011

Хорошо, я нашел простой ответ: установить маску на «00:00». Это поднимает отдельную проблему, но решает проблему здесь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...