Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

JavaScript DOM dynamische Inhalte - Unterschiede FF - IE - onkeydown - RPC

Frage Entwicklung JavaScript

Mitglied: Midivirus

Midivirus (Level 2) - Jetzt verbinden

29.08.2011, aktualisiert 10:35 Uhr, 2895 Aufrufe

Guten Morgen zusammen,

ich referenziere auf einen alten Beitrag HTML JavaScript dynamische Elemente hinzufügen - Tabelle - weitere Felder - Formular - Zeilen - Zellen, welches bis dort alles wunder funktioniert.

Jetzt wurden die hinzugefügten Zeilen noch mit onkeydown ausgestattet.
Der FF interpretiert dies auch korrekt.

Hier mal eine fertige Ansicht, was der Code später auswirft:
1d7f4168f5e5957625681ab5072f8994 - Klicke auf das Bild, um es zu vergrößern

Je nach Änderungstyp wird später beim Auswahlmenü mehrere Felder mit Werten gefüllt.
Beispiel:
Soll die Bezeichnung geändert werden, wird 'Artikelbezeichnung' auch nach 'alt' kopiert.
Bei Preis bsp. gleich der aktuelle wert nach 'alt'.
(etc.)

Der Internet Explorer macht dies auch soweit mit, bis die Zeile 3 bzw. 4 erreicht wird.
Dann wird zwar noch das Auswahlfenster geöfnet und die Werte werden geändert, aber ein übernehmen mittels klick ist dann nicht mehr möglich.

Dieser Codeschnipsel steht im Body vor TABLE:
01.
<script> 
02.
$(document).ready(function(){  
03.
	counting = 1; 
04.
	$('.mehr').click(function(){ 
05.
		$("tr:last").before( 
06.
			'<TR>' + 
07.
			'<TD><SELECT name=\"lief[]\" id=\"feldlieferant'+counting+'\"><OPTION value=\"Kategorie">Kategorie</SELECT></TD>' + 
08.
			'<TD><SELECT name=typ[] id=\"aufart'+counting+'\"><OPTION value=1>Preis<OPTION value=2>Menge<OPTION value=3>Kopien - Kanbans<OPTION value=4>Lager<OPTION value=5>Bezeichnung</SELECT></TD>' + 
09.
			'<TD><INPUT type=text size=15 name=\"kdartnr[]\" id=\"arteingabe'+counting+'\" onkeyup=\"lookup(this.value,\'xxx\',\'\',\'arteingabe'+counting+'\',\'artbez'+counting+'\');\" onblur=\"fill(thisValue);\"  autocomplete=\"off\"></TD>' + 
10.
			'<TD><INPUT type=text name=kdartbez[] id=\"artbez'+counting+'\" readonly=\"true\"></TD>' + 
11.
			'<TD><INPUT type=text name=alt[] id=\"alt'+counting+'\"></TD>' + 
12.
			'<TD><INPUT type=text name=neu[] id=\"neu'+counting+'\"></TD>' + 
13.
			'<TD><INPUT type=text name=notiz[] id=\"notiz'+counting+'\"></TD>' + 
14.
			'</TR>' 
15.
		); 
16.
		document.getElementById("hinweis").style.display = "none"
17.
		counting+=1; 
18.
	}) 
19.
 
20.
 
21.
});  
22.
</script>
Zum Erstellen des Auswahlfensters:
01.
function lookup(inputString,kunde,lieferant,inputid,inputbez) { 
02.
	if(inputString.length == 0) { 
03.
		$('#suggestions').hide(); 
04.
	} else
05.
		var temp = inputid.replace("arteingabe", "feldlieferant"); 
06.
		if(lieferant.length == 0) 
07.
			lieferant = document.getElementById(temp).value; 
08.
		$.post("rpc.php?kunde="+kunde+"&lieferant="+lieferant+"&feldart="+inputid+"&feldbez="+inputbez+"&suche="+inputString+"", {queryString: ""+inputString+""}, function(data){ 
09.
			if(data.length >0) { 
10.
				$('#suggestions').show(); 
11.
				$('#autoSuggestionsList').html(data); 
12.
13.
		}); 
14.
15.
} // lookup
Zum Übernehmen der Werte in die Felder übernimmt dies:
01.
function fill(thisValue,thisBez,inputid,inputbez,inputpreis) { 
02.
	$('#'+inputid).val(thisValue); 
03.
	$('#'+inputbez).val(thisBez); 
04.
	var zeile = inputid.replace("arteingabe", "aufart"); 
05.
	document.getElementById(inputid.replace("arteingabe", "notiz")).value = ''; 
06.
	document.getElementById(inputid.replace("arteingabe", "alt")).value = ''; 
07.
	if(document.getElementById(zeile).value == 1){ 
08.
		document.getElementById(inputid.replace("arteingabe", "alt")).value = inputpreis; 
09.
		document.getElementById(inputid.replace("arteingabe", "neu")).focus(); 
10.
11.
	if(document.getElementById(zeile).value == 2 || document.getElementById(zeile).value == 3){ 
12.
		document.getElementById(inputid.replace("arteingabe", "notiz")).value = 'HIER weiteres definieren!'; 
13.
		document.getElementById(inputid.replace("arteingabe", "notiz")).select(); 
14.
15.
	if(document.getElementById(zeile).value == 5){ 
16.
		document.getElementById(inputid.replace("arteingabe", "alt")).value = thisBez; 
17.
		document.getElementById(inputid.replace("arteingabe", "neu")).focus(); 
18.
19.
	setTimeout("$('#suggestions').hide();", 0); 
20.
	alert(zeile); 
21.
	return true; 
22.
}
Die Fehlerkonsole zeigt mir zwar ein paar fehlerhafte Zeilen, allerdings in Bereichen, wo ich nichts vermute:
Details zum Fehler auf der Webseite
Benutzer-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; Trident/5.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; InfoPath.2) 
Zeitstempel: Mon, 29 Aug 2011 08:31:34 UTC 
 
Meldung: Nicht abgeschlossene Zeichenfolgenkonstante 
Zeile: 1 
Zeichen: 34 
Code: 0 
URI: http:// 
 
Meldung: "thisValue" ist undefiniert 
Zeile: 1 
Zeichen: 1 
Code: 0 
URI: http://
Gibt es eine etwaige Erklärung, weshalb meistens bei der dritten Zeile dann die fill() einfach nichts mehr macht?
Neuester Wissensbeitrag
CPU, RAM, Mainboards

Angetestet: PC Engines APU 3a2 im Rack-Gehäuse

Erfahrungsbericht von ashnod zum Thema CPU, RAM, Mainboards ...

Heiß diskutierte Inhalte
Grafikkarten & Monitore
Win 10 Grafikkarte Crash von Software? (13)

Frage von Marabunta zum Thema Grafikkarten & Monitore ...

DSL, VDSL
DSL-Signal bewerten (10)

Frage von SarekHL zum Thema DSL, VDSL ...

Windows Server
Mailserver auf Windows Server 2012 (8)

Frage von StefanT81 zum Thema Windows Server ...

Backup
Clients als Server missbrauchen? (8)

Frage von 1410640014 zum Thema Backup ...