2015-01-23 3 views
0

Я динамически создаю таблицу html. Здесь для каждой строки два столбца создаются рекурсивным вызовом. Просто, когда нажата вторая ячейка, создается новая строка и так далее. Но я хочу заменить кнопку нажатием клавиши «Ввод». Я попробовал, код отлично работает для создания новой строки, нажав, но не нажав клавишу Enter.Создать строку таблицы при нажатии Enter Key

function CreateRow(){ 
    // Find a <table> element with id="myTable": 
    var table = document.getElementById("myTable"); 

    // Create an empty <tr> element and add it to the 1st position of the table: 
    var row = table.insertRow(); 

    // Insert new cells (<td> elements) at the 1st and 2nd position of the "new" <tr> element: 
    var cell1 = row.insertCell(0); 
    var cell2 = row.insertCell(1); 
/** $(cell2).bind('click', function() { 
     CreateRow(); 
    }); 
*/ 
$(cell2).keydown(function (e){ 
    if(e.keyCode == 13){ 
     CreateRow(); 
    } 
}); 


    // Add some text to the new cells: 
    cell1.innerHTML = "NEW CELL1"; 
    cell2.innerHTML = "NEW CELL2"; 

} 

Просьба помочь.

ответ

4

Вместо привязки события keydown к ячейке таблицы привяжите его к документу.

$(document).keydown(function (e) { 
+0

И добавьте, что это необходимо сделать за пределами функции –

+0

Это работает. Но мне нужно связать другое ключевое событие Enter с ячейками столбца-1. При нажатии на ячейки column-2 они создадут новую строку. Более того, здесь количество созданных строк удваивается. – user3577669

+0

Не видя остальную часть вашего кода здесь, мы не знаем, как вы определяете, как код знает, в какую таблицу добавить строки, когда пользователь попадает. – Mike

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