Autor Zpráva
Spouter
Profil *
Zdravím,

mám problém s odstraněním řádku dynamické tabulky. Po kliknutí chci odstranit vždy ten řádek, na který bylo kliknuto (resp. na tlačítko vedle něj).

Řeším to tím způsobem, že nejprve přepíšu řádek hodnotami následujícího řádku atd. až do konce a poté chci vymazat poslední řádek tabulky, ale ten nejde vymazat.

Zde kód js.:

var row_no=0;
var row_i=0;

function addRow(tbl,row){
row_no++;
var textbox  = '<input type="text" class="pole1" id="pole1'+row_no+'" name="pole1'+row_no+'" value="" />';
var textbox2 = '<input type="text" class="pole2" id="pole2'+row_no+'" name="pole2'+row_no+'" value=""/>';
var textbox3 = '<input type="text" class="pole3" id="pole3'+row_no+'" name="pole3'+row_no+'" value="" />';
var textbox4 = '<input type="text" class="pole4" id="pole4'+row_no+'" name="pole4'+row_no+'" value="" />';
var textbox5 = '<input type="text" class="pole5" id="pole5'+row_no+'" name="pole5'+row_no+'" value="" />';
var textbox6 = '<input type="text" class="pole6" id="pole6'+row_no+'" name="pole6'+row_no+'" value="" />';
var button = '<input type="button" value="x" id="tlacXjs" onclick="removeValue(this);" name="button" title="Vymaže zboží z objednávky" />';
var tbl = document.getElementById(tbl);
var rowIndex = document.getElementById(row).value;
var newRow = tbl.insertRow(row_no);
var newCell = newRow.insertCell(0);
newCell.innerHTML = textbox;
var newCell = newRow.insertCell(1);
newCell.innerHTML = textbox2;
var newCell = newRow.insertCell(2);
newCell.innerHTML = textbox3;
var newCell = newRow.insertCell(3);
newCell.innerHTML = textbox4;
var newCell = newRow.insertCell(4);
newCell.innerHTML = textbox5;
var newCell = newRow.insertCell(5);
newCell.innerHTML = textbox6;
var newCell = newRow.insertCell(6);
newCell.innerHTML = button;
if (row_no>=20){
alert ("Příliš mnoho položek - vytvořte novou objednávku");
document.objednavka.tlacPridatZbozi.disabled=true;
}
else {
document.objednavka.tlacPridatZbozi.disabled=false;
}
}

function smaz() {

document.getElementById('table1').deleteRow(row_no);
row_no--;
}

function removeValue(s) {

var u=s.parentNode.parentNode.rowIndex;
row_i = u;

var j = 1; 
var g = row_i; 
var h = row_i + 1;

for (g ; g<=row_no; g++) {

for (f=1; f<=6; f++) {
	
	document.getElementById('pole'+String(j)+String(g)).value = document.getElementById('pole'+String(j)+String(h)).value;
	j++;
	}
	j=1;
	h++;
}
}


Myslim si, že chyba je v cyklu ve funkci 'removeValue' ale nemůžu přijít kde. Pokud funkci 'smaz' přidám do 'removeValue' neprovede se. Pokud jí přidám k tlačítku 'x' tak také ne. Ale pokud jí zavolám samostatně, tak vše proběhně korektně.

Vše můžete vidět na http://www.compas.tym.cz/.

Nebo tady zazipovaný soubor.
Spouter
Profil *
Vyřešeno - chyba byla doopravdy v cyklu (děkuji funkci try, catch).

Vaše odpověď

Mohlo by se hodit

Neumíte-li správně určit příčinu chyby, vkládejte odkazy na živé ukázky.
Užíváte-li nějakou cizí knihovnu, ukažte odpovídajícím, kde jste ji vzali.

Užitečné odkazy:

Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: