Mam stronę z tabelą. W tbody
wyświetlam dane przez angularjs
. W thead
mam taki sam wiersz jak w tbody
, ale jest on pusty, a gdy wypełniłem pole wejściowe i click
gdzieś (utrata ostrości), jeden wiersz dodaje do mojej tabeli (thead
). I muszę ustawić flagę na wypełnionym wierszu, tak jak - rowAdded = true
, ponieważ bez tego klikam na wejście jednego wiersza i dodaje wiersz. I jeszcze jeden problem polega na tym, że wiersze dodają do końca table
. to wszystko działa na skrypcie:Jak wstawić nowe wiersze w jakiejś pozycji w tabeli
var tbody = $('.table-timesheet thead');
tbody.on('blur', ':text', function() {
var tr = $(this).closest('tr'),
notEmpty = $(':text', tr).filter(function() {
return $.trim($(this).val()) != '';
}).length;
if (notEmpty) {
$('.note-input').css('width', '88%').css('float', 'left');
$('.timesheet-delete-button').css('display', 'block');
//tr.clone(true).appendTo(tbody).find(':text').val('');
insRow();
}
});
function deleteRow(row) {
var i = row.parentNode.parentNode.rowIndex;
document.getElementById('table-body').deleteRow(i);
}
function insRow() {
var table = document.getElementById('table-body');
var newRow = table.rows[1].cloneNode(true);
var len = table.rows.length;
newRow.cells[0].innerHTML = len;
var inp1 = newRow.cells[1].getElementsByTagName('input')[0];
inp1.id += len;
inp1.value = '';
var inp2 = newRow.cells[2].getElementsByTagName('input')[0];
inp2.id += len;
inp2.value = '';
table.appendChild(newRow);
}
Jest mój przykład w plunker: http://plnkr.co/edit/rcnwv0Ru8Hmy7Jrf9b1C?p=preview
Jest Trudno jednoznacznie odczytać twoje pytanie i myślę, że to naprawdę wiele pytań w jednym. Czy próbujesz dodać nowy wiersz do nagłówka tabeli (thead)? Jeśli tak, dlaczego nie chcesz używać tbody? Zazwyczaj thead służy do informowania o tym, jakie kolumny będą miały. Cała ogólna funkcjonalność dodawania wiersza wydaje się być zepsuta, ponieważ za każdym razem dodam informacje w jednej z kolumn, tworząc nowy wiersz. – IfTrue
Demo nie zawiera w sobie kodu kątowego. Wygląda na to, że robisz o wiele za dużo manipulacji DOM, a także polegasz na document.ready. Podejście jest nieprawidłowe w przypadku pracy w aplikacji kątowej. Powinieneś aktualizować model danych, aby wygenerować widok, a nie robić własnych wstawień wierszy. Proszę zaktualizować wersję demo tak, aby przynajmniej ładował się do kontrolera, jeśli potrzebujesz dodatkowej pomocy – charlietfl
@HUSTLIN powinieneś dodać znacznik angular.js również z nim –