2016-06-22 6 views
0

Мне нужно ловушку, когда пользователь нажимает ENTER в режиме редактирования, и этот код работает каждый раз, когда нажимается любой другой ключ, но не ENTER.jqgrid не срабатывает при нажатии клавиши ENTER

Любые идеи, почему? возможно, есть автоматическая настройка, которая должна быть установлена ​​на false?

$(dispgrid).jqGrid({ 
      url: als.common.getServerPath() + 'WorkorderAjax/GetDispositionFields', 
      datatype: 'local', 
      mtype: 'POST', 
      height: 292, 
      width: 480, 
      caption: 'Disposition Instructions', 
      hidegrid: false, 
      loadtext: 'Please wait,</br>loading disposition fields...', 
      colModel: [ 
       { name: 'Description', label: 'Description', sortable: false, width: 120, align: 'left' }, 
       { name: 'Fraction', label: 'Split', sortable: false, width: 40, align: 'center' }, 
       { 
        name: 'Disposition', label: 'Disposition', sortable: false, align: 'left', 
        editable: true, edittype: 'select', classes: 'disposition_list' 
       }, 
       { name: 'PickList', label: 'PickList', sortable: false, hidden: true }, 
       { 
        name: 'FreeDays', label: 'FreeDays', sortable: false, editable: true 
       }, 
       { name: 'MaxFreeDays', label: 'MaxFreeDays',hidden: true } 
      ], 
      pgbuttons: false, 
      pginput: false, 
      rowNum: 999,      
      loadComplete: function() { 
       currentRowId = undefined; 
       prevRowId = undefined; 
       prevRowModified = false; 
      }, 
      onSelectRow: function (rowId) { 
       if (prevRowId !== undefined) { 
        if (prevRowModified) { 

         //validate free days here      
         var selRowId = $(dispgrid).jqGrid('getGridParam', 'selrow'); 
         var freedays = $("#" + prevRowId + "_FreeDays", dispgrid).val(); 
         var maxfreedays = $(dispgrid).jqGrid('getCell', selRowId, 'MaxFreeDays'); 

         if (parseInt(freedays) > parseInt(maxfreedays)) { 
          $(dispgrid).jqGrid('restoreRow', selRowId); 

          showErrorDialog("Free days can not be larger than " + maxfreedays); 
          $(dispgrid).resetSelection(); 
          $(dispgrid).setSelection(prevRowId, false); 
          return true; 
         } 

         saveparameters = { 
          url: als.common.getServerPath() + 'WorkorderAjax/UpdateDispositionFields', 
          extraparam: { 
           folderno: wo, 
           fraction: prevRowId, 
           disposition: $('#' + prevRowId + '_Disposition', this).val(), 
           freedays: $('#' + prevRowId + '_FreeDays', this).val() 
          }, 
          successfunc: function() { 
           $(this).trigger("reloadGrid"); 
           prevRowModified = false; 
           $(this).restoreRow(prevRowId); 
           return true; 
          } 
         }; 

         $(this).jqGrid('saveRow', prevRowId, saveparameters); 
        } 
        else { 
         $(this).restoreRow(prevRowId); 
        } 
       } 

       currentRowId = rowId; 

       var rowData = $(this).jqGrid('getRowData', currentRowId); 
       var unformatted = rowData.PickList; 
       var formatted = ''; 
       var ar = unformatted.split(','); 
       for (var i = 0; i < ar.length; i++) { 
        formatted += ar[i] + ':' + ar[i] 
        + (i < ar.length - 1 ? ';' : ''); 
       } 
       $(this).setColProp('Disposition', { editoptions: { value: formatted } }); 

       saveparameters = { 
        url: als.common.getServerPath() + 'WorkorderAjax/UpdateDispositionFields', 
        extraparam: { 
         folderno: wo, 
         fraction: currentRowId, 
         disposition: $('#' + currentRowId + '_Disposition', this).val() 
        }, 
        successfunc: function() { 
         $(this).trigger("reloadGrid"); 
         prevRowModified = false; 
         return true; 
        }, 
        keys: true 
       }; 

       $(this).editRow(currentRowId, saveparameters); 
       prevRowId = currentRowId; 
      } 
     }).closest('div.ui-jqgrid-view').children('div.ui-jqgrid-titlebar').css('text-align', 'center'). 
      children('span.ui-jqgrid-title').css('float', 'none'); 

     $(dispgrid).on('change', '', function() { prevRowModified = true; }); 

     $(dispgrid).on('keydown', '', function (e) {  
      //the break point here gets hit every time unless the user presses ENTER key 
      if (e.keyCode == 13) {     
      } 
     }); 

ответ

 Смежные вопросы

  • Нет связанных вопросов^_^