WinFuture-Forum.de: Javascript -> Im Ff Gehts Im Ie Nicht (objekt Erwartet) - WinFuture-Forum.de

Zum Inhalt wechseln

Nachrichten zum Thema: Entwicklung
Seite 1 von 1

Javascript -> Im Ff Gehts Im Ie Nicht (objekt Erwartet)


#1 Mitglied ist offline   skelle 

  • Gruppe: aktive Mitglieder
  • Beiträge: 793
  • Beigetreten: 15. Juli 04
  • Reputation: 0

geschrieben 10. Juli 2008 - 10:11

Hallo,
ich bin grad daran ein kleines Script zu basteln.
Man soll per Knopfdruck beliebig viele Eingabefelder erzeugen können was mit JS realisiert ist.
Funktioniert im FF auch ganz gut - nur leider im IE garnicht. Ich bekomme immer den Fehler Objekt erwaret.

<html>
<head>
<title>HCK XML Edit</title>
<script LANGUAGE="JavaScript">

var Id = 1;

var HCK = new Array("HCK", "Art", "user", "vo", "password", "url", "imei", "msisdn", "FaultSymptomCategory", "FaultSymptom", "loginuser", "loginvo", "loginpassword");
var Port = new Array("Port", "Art", "Hostname", "Port");
var webserver = new Array("webserver", "Art", "url");
var database = new Array("database", "Art", "Database", "Schema", "Password");
var vppValidate = new Array("vppValidate", "Art", "ServerAddress", "Path", "Port", "Appname");
var vppRefresh = new Array("vppRefresh", "Art", "ServerAddress", "Path", "Port", "Appname", "url", "User", "Password");
var ccBp = new Array("ccBp", "Art", "url", "msisdn");
var ccContract = new Array("ccContract", "Art", "url", "msisdn");

var caps =new Array(HCK, database, Port, webserver, vppValidate, vppRefresh, ccBp, ccContract);

function test()
{
	document.write("blub");
}

function getCheck(ID, captions) {

	var table =	document.createElement("table");

	//ID für die Tabelle festelegen	
	var aID = document.createAttribute("id");
	aID.nodeValue = Id;
	table.setAttributeNode(aID);
	
	var aStyle = document.createAttribute("style");
	aStyle.nodeValue = "border:3px solid black;";
	table.setAttributeNode(aStyle);
	
	//tr und td erstelllen
	var row = document.createElement("tr");
	var td1 = document.createElement("td");
	var td2 = document.createElement("td");
	
	//Beschriftungen festlegen		
	td1.appendChild(document.createTextNode("Art"));

	//select Element mit Eigenschaften und Optionen definieren
	var input = document.createElement("select");
	var sName = document.createAttribute("name");
	sName.nodeValue = "choice";
	input.setAttributeNode(sName);
	
	var sChange = document.createAttribute("onChange");
	sChange.nodeValue = "change("+ Id +")";
	input.setAttributeNode(sChange);
	
	var Eintrag = document.createElement("option");
	Eintrag.text = "Bitte wählen";
	Eintrag.value = "choose";
	input.appendChild(Eintrag);
		
	for (var i =0; i < caps.length; i++)
	{
		var Eintrag = document.createElement("option");
  		Eintrag.text = caps[i][0];
  		Eintrag.value = i;
  		input.appendChild(Eintrag);
  	}
  		
	td2.appendChild(input);

	row.appendChild(td1);
	row.appendChild(td2);
	table.appendChild(row);		
	
	//Tabelle in HTML-Seite einfügen
	var elem = document.getElementById(ID);
	elem.appendChild(table);
	Id++;
}

function delete(elem)
{
	document.write("1");

}

//Ändern des CheckWertes
function change(Id)
{
	var elem = document.getElementsByName("choice")[Id-1];
	var table = document.getElementById(Id);
	
	while(table.childNodes.length > 1)
	{
		var sel = table.lastChild;
		table.removeChild(sel);
	}
	
	for (var i = 0; i < caps[elem.selectedIndex-1].length; i++)
	{
		var tr = document.createElement("tr");
		var td1 = document.createElement("td");
		var td2 = document.createElement("td");
		
		td1.appendChild(document.createTextNode(caps[elem.
selectedIndex-1][i]));
		
		var input = document.createElement("input");
		var attr = document.createAttribute("type");
		attr.nodeValue = "text";	
		input.setAttributeNode(attr);	
		td2.appendChild(input);
		
		tr.appendChild(td1);
		tr.appendChild(td2);
		table.appendChild(tr);
	}
}
function load()
{
	var robotValues = new Array("wait", "from", "to", "proxyHost", "proxyPort", "logFile", "database", "schema", "password", "table");
	
	var input = document.getElementsByName("xml")[0].value;
	
	//nach robot suchen
	var pos = input.indexOf("<robot");
	input = input.slice(pos,input.length);

	//Elemente auslesen
	for(var i =0; i < robotValues.length; i++)
	{
		input = input.slice(input.indexOf(robotValues[i]),input.le
ngth);
		input = input.slice(input.indexOf('"')+1,input.length);
		document.getElementsByName(robotValues[i])[0].valu
e = input.slice(0,input.indexOf('"'));
	}
	
	
}

function save()
{
	
}
</script>


</head>
<body>
<form>
<textarea name = xml rows = 10 cols = 50>
</textarea>
<br>
<br>
<input type = button value="Laden" onClick="load()">&nbsp &nbsp
<input type = button value="Speichern" onClick="")>
<br><br>
<table>
	<tr>
		<td>Wartezeit:</td>
		<td><input type="text" name="wait"></td>
	</tr>
	
	<tr>
		<td>Starzeit:</td>
		<td><select name=from>
			<script> 
				for(var i =0; i < 24; i++)
				{
					document.write("<option value = "+i+">"+ i + "</option>");
				}
			</script>
			</select>
		</td>
	</tr>
	
	<tr>
		<td>Endzeit:</td>
		<td><select name=to>
			<script> 
				for(var i =0; i < 24; i++)
				{
					document.write("<option value = "+i+">"+ i + "</option>");
				}
			</script>
			</select>
		</td>
	</tr>

	<tr>
		<td>Proxyhost:</td>
		<td><input type="text" name="proxyHost"></td>
	</tr>
	
	<tr>
		<td>Proxyport:</td>
		<td><input type="text" name="proxyPort"></td>
	</tr>
	
	<tr>
		<td>Logfile:</td>
		<td><input type="text" name="logFile"></td>
	</tr>
	
	<tr>
		<td>Datenbank:</td>
		<td><input type="text" name="database"></td>
	</tr>
	
	<tr>
		<td>Schema:</td>
		<td><input type="text" name="schema"></td>
	</tr>
	
	<tr>
		<td>Passwort:</td>
		<td><input type="text" name="password"></td>
	</tr>
	
	<tr>
		<td>Tabelle:</td>
		<td><input type="text" name="table"></td>
	</tr>
</table>
<input type="button" name ="neu" value ="Neuer Check" onClick=getCheck(0,Port)>
<p id =0>
</table>
</body>
</html>


Der Fehler taucht ganz unten in der Zeile
<input type="button" name ="neu" value ="Neuer Check" onClick=getCheck(0,Port)>
auf.

Ein weiteres Problem was noch existiert is folgendes: Wenn man die Art bei einem Auswahlfeld mehrmals ändert entsteht ohne Grund eine immer größer werdende Lücke zwischen Auswahlbox und Eingabefeldern. Kann mir einer sagen wie cih das weg bekomme? :D

greetz skelle
0

Anzeige



#2 Mitglied ist offline   skelle 

  • Gruppe: aktive Mitglieder
  • Beiträge: 793
  • Beigetreten: 15. Juli 04
  • Reputation: 0

geschrieben 10. Juli 2008 - 12:49

also das Problem mit dem Scriptfehler hab ich gelöst - die funktion delete durfte nicht so heissen Oo

Jetzt zeigt er mir zwar keinen Fehler mehr ab, aber die Eingabefelder werden trotzdem nicht ausgegeben =/
0

Thema verteilen:


Seite 1 von 1

1 Besucher lesen dieses Thema
Mitglieder: 0, Gäste: 1, unsichtbare Mitglieder: 0