jqgrid - как обойти проверку номера - PullRequest
0 голосов
/ 09 декабря 2010

У меня есть столбец в jqgrid, определенный как число. Пользователь вынужден вводить число, например 6,5, с разделителем запятых. Эта сетка также используется немецкоязычными людьми, которые используют для вставки таких цифр, как 6,5, используя запятую в качестве разделителя.

Эти люди расстраиваются, когда им не разрешено вставлять 6,5 вместо 6,5: D

Чтобы сделать их (и в итоге) мою жизнь более удобной, я ищу способ автоматически конвертировать 6,5 в 6,5. Это должно быть сделано на стороне клиента, так как я хочу положиться на проверку jqgrid num.

Таким образом, я должен проверить (и, возможно, преобразовать) число, прежде чем jqgrid проверит его. Это возможно?

- изменить -

Ни одна из этих функций не вызывается, кроме первой. Есть идеи, почему это может быть причиной?

    afterInsertRow:function (rowid, aData){
                alert('fire');

            },
    beforeSaveCell : function(rowid,celname,value,iRow,iCol){ 
                alert('no fire');
                return "new value";

        },
    beforeSubmitCell : function(rowid,celname,value,iRow,iCol){ 
                alert('no fire2');
                return "new value";

        },
    beforeEditCell : function(rowid,celname,value,iRow,iCol){ 
                alert('no fire3');
                return "new value";

        },

- edit2 -

Это код, который я использую для встроенного редактирования.

onSelectRow: function(row_id){  
if(row_id != null) {
    var date_str = jQuery('#grid').getCell(row_id, 'date_str');
    //var sum = jQuery('#grid').getCell(row_id, 'sum');
    var description = jQuery('#grid').getCell(row_id, 'description');
    if(date_str != "Total"){
        if(row_id !== last_selected_row) {
            if(row_id == -99){
                //thats the first click of the user after initial load of the grid
                jQuery('#grid').jqGrid('saveRow',row_id)
                    .editRow(row_id, true,true,reload);
                last_selected_row = row_id;
                        }
            else{
              //after user jumps from one cell to another using the mouse
              jQuery('#grid').jqGrid('saveRow',last_selected_row,reload);
              jQuery('#grid').jqGrid('restoreRow',last_selected_row);
              last_selected_row = row_id;
            }
        } else {
            jQuery('#grid').jqGrid('saveRow',row_id)
                .editRow(row_id, true,true,reload);
            last_selected_row=row_id;
                    }
            }
        }

},

1 Ответ

1 голос
/ 09 декабря 2010

Если вы используете редактирование ячеек, вы можете попытаться написать свой beforeSaveCell обработчик событий, который сделает замену текста, который вам необходим.Не знаю, какая информация может быть помещена в ячейку, но, вероятно, используется Плагин маскированного ввода (см. старый ответ здесь ) или просто фильтрация по нажатию клавиши (см. другой ответ) может улучшить пользовательский опыт.

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