2015-05-12 2 views
1

У нас есть кнопка в нижней части handsontable. Когда пользователь вставляет вкладку в последнюю ячейку, мы можем выбрать кнопку вместо того, чтобы возвращаться в первую ячейку?Вкладка за пределами мобильных телефонов

Вот jsFiddle

var data = [ 
 
    ["", "Ford", "Volvo", "Toyota", "Honda"], 
 
    ["2014", 10, 11, 12, 13], 
 
    ["2015", 20, 11, 14, 13], 
 
    ["2016", 30, 15, 12, 13] 
 
]; 
 

 
var container = document.getElementById('example'); 
 
var hot = new Handsontable(container, { 
 
    data: data, 
 
    minSpareRows: 1, 
 
    rowHeaders: true, 
 
    colHeaders: true, 
 
    autoWrapRow: true, 
 
    autoWrapColumn: true 
 
});
<link href="https://cdnjs.cloudflare.com/ajax/libs/handsontable/0.14.1/handsontable.full.css" rel="stylesheet"/> 
 
<script src="https://cdnjs.cloudflare.com/ajax/libs/handsontable/0.14.1/handsontable.full.js"></script> 
 
<form> 
 
    <div id='example'></div> 
 
    <br /> 
 
    <input type="button" value="Save"></input> 
 
</form>

ответ

0

Что бы я сделать, это захватить событие, в вашем случае .on('beforekeydown') и проверьте клавишу табуляции. Если нажать, проверьте, какая ячейка находится в горячем экземпляре, используя hot.getSelected(), и если это последняя ячейка, переключите фокус на любую желаемую кнопку. Вот некоторые детали кода:

Handsontable.Dom.addEvent(containerTag, 'keydown', function(e) { 
    // On Tab, go to external button if last cell 
    if (e.keyCode === 9 && hotInstance) { 
    e.stopPropagation(); 
    var selection = hotInstance.getSelected(); 
    var rowIndex = selection[0]; 
    var colIndex = selection[1]; 
    if (rowIndex == lastRow && colIndex == lastCol) { 
     hotInstance.deselect(); 
     buttonJquerySelector.focus(); 
    } 
    } 
}); 

Я не проверял этот код, но это более или менее то, что вы должны пытаться сделать.

+0

Спасибо. Мне было интересно, есть ли альтернативный способ перехватить параметр tabMoves, но он выглядит как none. Мы попробуем вышесказанное. – mpusarla

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