Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Objekte über den Namen ansprechen

Empfohlene Antworten

Veröffentlicht

Da ich kein Crack in JS bin und Du es vielleicht bist. Schau es Dir mal an.

Ich habe mit Struts eine Dynamische Seite erstellt auf der sich mehre Objekte befinden und in der Anzahl auch variieren können. bis auf eine Tabelle. Ich versuche jetzt auf die Objekte der Tabelle zuzugreifen und merke das ich immer das falsche Objekt anspreche, ist mir auch klar warum 'document.TEST[eingabefeld].value'. Siehe auch mal Quellcode. Nun könnte es doch was geben mit dem ich über den Namen des Objekts das selbe Ergebnis bekomme wie im Quellcode unten erhalte.

Hier ist das Beispiel was ich in die Dynamische Seite übernehmen wollte, aber leider an der document.TEST[xxxxxx :confused: xxxxxxxx].value immer wieder scheitere.

Bitte mach mir auch ein kleines Beispiel damit ich es gut verstehe.

Danke

*******************************************************************

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>

<head>

<title>Test</title>

<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">

<script language="JavaScript1.1">

function Check(Eingabe)

{

var nur_das ="0123456789.-"; //alle erlaubten Zeichen

for (var i = 0; i < Eingabe.length; i++)

{

if (nur_das.indexOf(Eingabe.charAt(i))<0 )

return 1;

}

return 0;

}

function runden(x) //behebt den Bug beim addieren von double Werten

{

var rund = (Math.round(x * 100) / 100).toString();

return rund;

}

function addieren(eingabefeld,summandfeld,zielfeldname)

{

//eingabefeld = Index des Einbabefeld in der Form Achtung fängt bei 0 an!!!

//summandfeld = Index des anderen Summanden

//zielfeldname = Index des Zielfeldes in der Form

var a = 0;

var b = 0;

var c = 0;

if(Check(document.TEST[eingabefeld].value)==0)

{

a = document.TEST[eingabefeld].value;

b = document.TEST[summandfeld].value;

c = eval(a) - eval(B);

document.TEST[zielfeldname].value = runden©;

}else

{

alert("Sie haben ein falsches Zeichen eingegeben! Nur diese Zeichen sind erlaubte: 0123456789.-");

document.TEST[eingabefeld].value = 0;

}

}

function dreisatz(hundertProzent,feldEins,feldZwei,zielfeldname)

{

//hundertProzent = Index des Einbabefeld in der Form wo die 100% zufinden sind

//feldEins = Index des Einbabefeld1

//feldZwei = Index des Einbabefeld2

//zielfeldname = Index des Zielfeldes in der Form

var a = document.TEST[hundertProzent].value; //100%

var b = document.TEST[feldEins].value; //Einbabefeld1

var c = document.TEST[feldZwei].value; //Einbabefeld2

var d = 0; //Ergebnis

if(Check©==1)

{

alert("Sie haben ein falsches Zeichen eingegeben! Nur diese Zeichen sind erlaubte: 0123456789.-");

document.TEST[feldZwei].value = 0;

c = 0;

}

d = (eval(B) + eval©) / a ;

d = (d - 1)* 100;

if(d=="NaN")

{

document.TEST[zielfeldname].value = 0;

}else

document.TEST[zielfeldname].value = runden(d);

}

</script>

</head>

<body>

<form name="TEST" method="post" action="">

<table width="77%" border="1" cellspacing="0" bordercolor="#000000">

<tr>

<td><strong>Plan</strong></td>

<td><strong>Ist</strong></td>

<td><strong>Rest(Diff)</strong></td>

<td><strong>Rest(Plan)</strong></td>

<td><strong>Abweichung in %</strong></td>

</tr>

<tr>

<td><input type="text" name="textfield1" value=0 onChange="addieren(0,1,2);dreisatz(0,1,3,4)"></td>

<td><input type="text" name="textfield2" value=0 onChange="addieren(1,0,2)"></td>

<td><input type="text" name="textfield3" value=0 readonly></td>

<td><input type="text" name="textfield4" value=0 onChange="dreisatz(0,1,3,4)"></td>

<td><input type="text" name="textfield5" value=0 readonly></td>

</tr>

<tr>

<td><input type="text" name="textfield6" value=0 onBlur="addieren(5,6,7);dreisatz(5,6,8,9)"></td>

<td><input type="text" name="textfield7" value=0 onBlur="addieren(6,5,7)"></td>

<td><input type="text" name="textfield8" value=0 readonly></td>

<td><input type="text" name="textfield9" value=0 onBlur="dreisatz(5,6,8,9)"></td>

<td><input type="text" name="textfield10" value=0 readonly></td>

</tr>

</table>

</form>

</body>

</html>

Bin vielleicht doch ein Crack :marine

Hier kommt die Löschung, die auch auf meiner dynamischen Seite funkt:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>

<head>

<title>Test</title>

<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">

<script language="JavaScript1.1">

function Check(Eingabe)

{

var nur_das ="0123456789.-"; //alle erlaubten Zeichen

for (var i = 0; i < Eingabe.length; i++)

{

if (nur_das.indexOf(Eingabe.charAt(i))<0 )

return 1;

}

return 0;

}

function runden(x) //behebt den Bug beim addieren von double Werten

{

var rund = (Math.round(x * 100) / 100).toString();

return rund;

}

function addieren(eingabefeld,summandfeld,zielfeldname)

{

//eingabefeld = Index des Einbabefeld in der Form Achtung fängt bei 0 an!!!

//summandfeld = Index des anderen Summanden

//zielfeldname = Index des Zielfeldes in der Form

var a = 0;

var b = 0;

var c = 0;

if(Check(document.getElementsByName(eingabefeld)[0].value)==0)

{

a = document.getElementsByName(eingabefeld)[0].value;

b = document.getElementsByName(summandfeld)[0].value;

c = eval(a) - eval(B);

alert(a +" , " + b +" , " + c );

document.getElementsByName(zielfeldname)[0].value = runden©;

}else

{

alert("Sie haben ein falsches Zeichen eingegeben! Nur diese Zeichen sind erlaubt: 0123456789.-");

document.getElementsByName(eingabefeld)[0].value = 0;

}

}

function dreisatz(hundertProzent,feldEins,feldZwei,zielfeldname)

{

//hundertProzent = Index des Einbabefeld in der Form wo die 100% zufinden sind

//feldEins = Index des Einbabefeld1

//feldZwei = Index des Einbabefeld2

//zielfeldname = Index des Zielfeldes in der Form

var a = document.getElementsByName(hundertProzent)[0].value; //100%

var b = document.getElementsByName(feldEins)[0].value;//Einbabefeld1

var c = document.getElementsByName(feldZwei)[0].value; //Einbabefeld2

var d = 0; //Ergebnis

if(Check©==1)

{

alert("Sie haben ein falsches Zeichen eingegeben! Nur diese Zeichen sind erlaubt: 0123456789.-");

document.getElementsByName(feldZwei)[0].value = 0;

c = 0;

}

d = (eval(B) + eval©) / a ;

d = (d - 1)* 100;

if(d=="NaN")

{

document.getElementsByName(zielfeldname)[0].value = 0;

}else

document.getElementsByName(zielfeldname)[0].value = runden(d);

}

</script>

</head>

<body>

<form name="TEST" method="post" action="">

<table width="77%" border="1" cellspacing="0" bordercolor="#000000">

<tr>

<td><strong>Plan</strong></td>

<td><strong>Ist</strong></td>

<td><strong>Rest(Diff)</strong></td>

<td><strong>Rest(Plan)</strong></td>

<td><strong>Abweichung in %</strong></td>

</tr>

<tr>

<td><input type="text" name="0" value=0 onBlur="addieren(0,1,2);dreisatz(0,1,3,4)"></td>

<td><input type="text" name="1" value=0 onBlur="addieren(0,1,2)"></td>

<td><input type="text" name="2" value=0 readonly></td>

<td><input type="text" name="3" value=0 onBlur="dreisatz(0,1,3,4)"></td>

<td><input type="text" name="4" value=0 readonly></td>

</tr>

<tr>

<td><input type="text" name="5" value=0 onBlur="addieren(5,6,7);dreisatz(5,6,8,9)"></td>

<td><input type="text" name="6" value=0 onBlur="addieren(5,6,7)"></td>

<td><input type="text" name="7" value=0 readonly></td>

<td><input type="text" name="8" value=0 onBlur="dreisatz(5,6,8,9)"></td>

<td><input type="text" name="9" value=0 readonly></td>

</tr></table>

</form>

</body>

</html>

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.