toevoegen en verwijderen van rijen in een tabel

  • Onderwerp starter Onderwerp starter Glest
  • Startdatum Startdatum
Status
Niet open voor verdere reacties.

Glest

Gebruiker
Lid geworden
6 sep 2007
Berichten
688
Ik ben bezig een site te maken, en ik heb nu een probleempje. Ik wil rijen toe laten voegen en verwijderen aan/van een tabel. Nou is dat gewoon gelukt, maar in internet explorerer heeft om een of andere rede problemen met mijn script. In firefox werkt het prima, maar IE wordt boos... Heb al eindeloos lopen sleutelen om het script in IE te laten werken, maar dit lukt me echt niet... Zit nou al een dag mn haar uit te trekken.

script in actie:
http://www.zingjerijk.nl/voorbeeld.php (klein beetje gekanabaliseerd)

Ik heb echt geen idee waarom het fout gaat in IE. Ik heb het getest met IE7 btw.

Dank voor eventuele reacties


HTML:
function AddLine() {
	var list = document.getElementById("addLineTr");
	var row = list.insertRow(list.rows.length);
	var count=list.rows.length;
	var cells = new Array();
	cells.push(row.insertCell(0));
	cells.push(row.insertCell(1));
	cells.push(row.insertCell(2));
	cells.push(row.insertCell(3));
	cells.push(row.insertCell(4));
	cells.push(row.insertCell(5));
	cells.push(row.insertCell(6));
	cells[0].innerHTML="<a href=\"#\" onmouseover=\'toolTip(\"<span style=\\\\\"text-align: left\\\\\";>The kind of line you want to add.<lu><li>For damage lines (Piercing Damage: 13-26 etc), select Damage.</li><li>For any other effect like +5 Energy or -3 damage received, select Effect.</li><li>For plain grey text, select Description, and only fill out the Description field, leave Effect empty.</li></lu></span>\", 600)\' onmouseout=\"toolTip()\">Type:</a>";
	cells[1].innerHTML="<select name=\"itEffectType"+(count)+"\" STYLE=\"width: 100px\"><option value=\"0\">Effect&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(Energy/Health/Skill/Anything mod)</option><option value=\"1\">Damage&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(Direct damage, only for weapons)</option><option value=\"2\">Description&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(Grey text at the bottom, leave Effect empty)</option></select>";
	cells[2].innerHTML="<a href=\"#\" onmouseover=\'toolTip(\"<img src=images/iteffect.jpg>\")\' onmouseout=\"toolTip()\">Effect:</a>";
	cells[3].innerHTML="<input name=\"itEffect"+(count)+"\" type=\"text\">";
	cells[4].innerHTML="<a href=\"#\" onmouseover=\'toolTip(\"<img src=images/iteffectdesc.jpg>\")\' onmouseout=\"toolTip()\">Description:</a>";
	cells[5].innerHTML="<input name=\"itEffectDesc"+(count)+"\" type=\"text\">";
	cells[6].innerHTML="<a href=\"javascript.php\" target=\"_blank\" onclick=\"DelLine("+(count)+"); return false;\" onmouseover=\'toolTip(\"Delete this effect.\")\' onmouseout=\"toolTip()\">Delete</a>";
	cells[6].id="del"+(count);
}

function DelLine(num) {
	var list = document.getElementById("addLineTr");
	var max = list.rows.length;
	if (num>max) alert("Zomg "+num+"/"+max);
	list.deleteRow(num-1);
	var effecttype, effect, effectdesc, del;
	for (i=num+1; i<=max; i=i+1){
		effecttype = document.getElementsByName("itEffectType"+i)[0]
		effecttype.name="itEffectType"+(i-1);
		effect = document.getElementsByName("itEffect"+i)[0]
		effect.name="itEffect"+(i-1);
		effectdesc = document.getElementsByName("itEffectDesc"+i)[0];
		effectdesc.name="itEffectDesc"+(i-1);
		del = document.getElementById("del"+i);
		del.innerHTML="<a href=\"javascript.php\" target=\"_blank\" onclick=\"DelLine("+(i-1)+"); return false;\">Delete</a>";
		del.id="del"+(i-1);
	}
}
 
Laatst bewerkt:
er is trouwens een foutmelding op deze lijn, wanneer ik de tweede keer een rij verwijder (als er nog rijen onder staan)
effecttype = document.getElementsByName("itEffectType"+i)[0];

werkt prima in FireFox, maar IE zegt dat undifined geen properties heeft :/ nogal logisch ja.. blijkbaar kan hij hem niet vinden, wat alleen kan betekenen dat de rijen niet worden veranderd als er een eerdere rij wordt verwijderd..

dus dan werkt dit lijntje niet goed:
effecttype.name="itEffectType"+(i-1);

helaas zijn de wijzigingen door javascript niet te zien in de bron... (ja.. wel in firefox, maar daar werkt het gewoon :/)
 
Laatst bewerkt:
Ok... heb het opgelost door een id toe te voegen en inplaats van getElementsByName(***)[0]
getElemenById(***) te gebruiken...


maareeh... kan mij zijn, maar IE7 doet het veeeel slechter dan Firefox... en niet alleen met javascript....
 
jeeez, IE7 geeft nu na drie keer verwijderen een foutmelding :/

Heb nu maar een melding gemaakt die afgaat bij javascript fout. (door link met funtie in onlick gevolgd door "return false;"

javascript.php zegt dit:
Code:
A Javascript error occured. Make sure Javascript is enabled, and if it is, try switching to Firefox. Firefox is far superiour over IE(7) in many ways, including Javascript.

en wordt geopend met linkie:
HTML:
<a href="javascript.php" target="_blank" onclick="DelLine([i]); return false;">Delete</a>

Moet voorlopig maar genoeg zijn tot de rest af is :/
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan