Inputfield disablen

kleiner_floh

Mitglied
Hallo Leute,

ich habe ein Problem.

Ich erstelle ein Java-Webapplikation, welche über Common-Controls ein List Object erzeugt und mit einzelnen Zeilen, worin mehrere Inputfelder sind.

Wenn ich nun auf eines von diesen innerhalb einer Zeile klicke, soll ein anderes disabled (in der selben Zeile) disabled werden. Das problem ist nur, dass ich jedoch nur die selben IDs anhängen kann, eventuell könnte ich auch per Zähler einen Int hinterhängen, die Lösung gefällt mir aber nicht. :(

Das Problem liegt nun in den IDs dass mir egal wo ich klicke immer für die oberste ID das disable gesetzt wird. (Zur Info, kann das ganze nicht per name ansprechen)

Mein JS sieht so aus und t für die oberste Zeile auch top:

HTML:
function new_einnahme() {
	
	document.getElementById("kassenbuch.einnahmen").disabled = false;
	document.getElementById("kassenbuch.einnahmen").style.backgroundColor = "#ffffff";
	document.getElementById("kassenbuch.ausgaben").disabled = true;
	document.getElementById("kassenbuch.ausgaben").style.backgroundColor = "#999999";

}

function new_ausgabe() {
	document.getElementById("kassenbuch.ausgaben").disabled = false;
	document.getElementById("kassenbuch.ausgaben").style.backgroundColor = "#ffffff";
	document.getElementById("kassenbuch.einnahmen").disabled = true;
	document.getElementById("kassenbuch.einnahmen").style.backgroundColor = "#999999";
}

Screenshot habe ich angehängt.

Vielleicht habt ihr ja eine Idee. thx and Greetz
Florian
 

Anhänge

  • list_screen.jpg
    list_screen.jpg
    110,9 KB · Aufrufe: 37
Hmm.. also eigentlich ist ja genau dafür die Name-Eigenschaft gedacht...

Wenn es in deine HTML-Struktur passt, könnte previousSibling/nextSibling dir vielleicht weiterhelfen.


Gruß

.:lay-z-cow..
 
Hmmm... also wenn du nicht über IDs arbeiten willst, wirst du aber mit den DOM-Funktionen vorlieb nehmen müssen. Hier mal ein Beispiel, wie es ohne den Einsatz von IDs funktioniert:

HTML:
				<table>
					<tr>
						<td>
						<input type="text" value="1" onclick="alert(this.parentNode.parentNode.getElementsByTagName('TD')[1].getElementsByTagName('INPUT')[0].value)"/>						
						</td>						
						<td>
						<input type="text" value="2" onclick="alert(this.parentNode.parentNode.getElementsByTagName('TD')[0].getElementsByTagName('INPUT')[0].value)"/>	
						</td>						
					</tr>
					<tr>
						<td>
						<input type="text" value="3" onclick="alert(this.parentNode.parentNode.getElementsByTagName('TD')[1].getElementsByTagName('INPUT')[0].value)"/>						
						</td>						
						<td>
						<input type="text" value="4" onclick="alert(this.parentNode.parentNode.getElementsByTagName('TD')[0].getElementsByTagName('INPUT')[0].value)"/>	
						</td>						
					</tr>					
					<tr>
						<td>
						<input type="text" value="5" onclick="alert(this.parentNode.parentNode.getElementsByTagName('TD')[1].getElementsByTagName('INPUT')[0].value)"/>						
						</td>						
						<td>
						<input type="text" value="6" onclick="alert(this.parentNode.parentNode.getElementsByTagName('TD')[0].getElementsByTagName('INPUT')[0].value)"/>	
						</td>						
					</tr>						
				</table>


Gruß

.:lay-z-cow:.
 
An sich eine gute Lösung, nur müsste ich das dann für die JSp umsetzen...

hier mal der Auszug wo die Inputs generiert werden...
HTML:
	<ctrl:list id="kassenbuch_list" action="/hekaton.do" locale="true"
			refreshButton="true" name="kassenbuch_list" title="kassenbuch.title"
			width="100" minRows="16" createButton="true" styleId="kassenbuchList">
			<ctrl:columntext title="kassenbuch.datum" property="datum" width="10"
				size="10" editable="true" sortable="false" />
			<ctrl:columntext title="kassenbuch.belegnr" property="belegnr"
				width="10" size="10" editable="true" sortable="false" />
			<ctrl:columntext title="kassenbuch.einnahmen" property="einnahmen" styleId="kassenbuch.einnahmen" 
				width="10" size="10" editable="true" editableProperty="editble" sortable="false" onclick="return new_einnahme();" />
			<ctrl:columntext title="kassenbuch.ausgaben" property="ausgaben" styleId="kassenbuch.ausgaben"
				width="10" size="10" editable="true" sortable="false" onclick="return new_ausgabe();"/>
		<%--	<ctrl:columnselect title="kassenbuch.konto" property="konto"
				editable="true" sortable="false">
				<base:options name="beschreibung_box" property="KontoList"
					keyProperty="konto" labelProperty="konto" />
			</ctrl:columnselect> --%>
			<ctrl:columntext title="kassenbuch.kst" property="kst"
				editable="false" width="10" size="10" />
			<ctrl:columnselect title="kassenbuch.beschreibung"
				property="beschreibung" editable="true" sortable="false">
				<base:options name="beschreibung_box" property="KontoList"
					keyProperty="beschreibung" labelProperty="beschreibung" />
			</ctrl:columnselect>
			<ctrl:columndelete title="kassenbuch.delete" sortable="false"
				sortable="false"
				onclick="return confirmDelete('der ausgewählte Eintrag');" />
		</ctrl:list>


...............................
 
Ich hab noch nie was mit JSP gemacht, allerdings schreibst du da doch auch deine onclick-Events einfach so rein....
Du musst eben entweder dein JSP oder mein JS anpassen...
Für das Anpassen des JS ist es natürlich nur interessant, wie die HTML-Struktur aussieht, die er am Ende ausspuckt. ;)


Gruß

.:lay-z-cow:.
 
Wollte eigentlich keinem antun das HTML (generiert) durchgucken zu müssen...aber hier ist es...


HTML:
<span id='lc_kassenbuchList'><table id='kassenbuchList' cellspacing='0' width='100' class='lc' border='0' cellpadding='0'><thead><tr><td><table cellspacing='0' class='lch' border='0' cellpadding='0'><tr><td valign='top'><img width='10' height='17' border='0' src='fw/def/image/corners/l.gif'></td><td width='100%'><table cellpadding='0' width='100%' cellspacing='3'><tr><td nowrap class='c'>Kassenbuch</td><td><img width='6' height='15' border='0' src='fw/def/image/bullet.gif'></td><td nowrap class='d'>6 Eintr&auml;ge</td><td width='100%'> </td><td><a href='/kassenbuch/hekaton.do?ctrl=kassenbuch_list&action=Create&_h_pid=6' title='Neue Zeile anlegen'><img width='15' src='fw/def/image/buttons/btnCreate1.gif' height='15' border='0' align='absmiddle' id='btn' vspace='0'></a></td><td><a href='/kassenbuch/hekaton.do?ctrl=kassenbuch_list&action=Refresh' title='Liste aktualisieren'><img width='15' src='fw/def/image/buttons/btnRefresh1.gif' height='15' border='0' align='absmiddle' id='btn' vspace='0'></a></td></tr></table></td><td valign='top'><img width='10' height='17' border='0' src='fw/def/image/corners/r.gif'></td></tr></table></td></tr></thead><tbody><tr><td><table cellspacing='0' width='100%' class='lcb' cellpadding='0'><tr><td><table cellspacing='1' width='100%' class='ibody' border='0' cellpadding='0'><tr class='header'><td width='10'>Datum</td><td width='10'>Beleg Nr.</td><td width='10'>Einnahmen</td><td width='10'>Ausgaben</td><td width='10'>Kst</td><td>Beschreibung</td><td width='50' align='center'>L&ouml;schen</td></tr><tr onMouseOver='high(this);' class='even' onMouseOut='low(this);'><td class='cl'><input size='10' value='2007-12-04' name='ctrlvcol%3Ddatum%3Bctrl%3Dkassenbuch_list%3Brow%3D4239%3Btype%3Dtxt' type='text'></td><td class='cl'><input size='10' value='15' name='ctrlvcol%3Dbelegnr%3Bctrl%3Dkassenbuch_list%3Brow%3D4239%3Btype%3Dtxt' type='text'></td><td class='cl'><input size='10' onClick='return new_einnahme();' id='kassenbuch.einnahmen' value='NULL' name='ctrlvcol%3Deinnahmen%3Bctrl%3Dkassenbuch_list%3Brow%3D4239%3Btype%3Dtxt' type='text'></td><td class='cl'><input size='10' id='kassenbuch.ausgaben' value='' name='ctrlvcol%3Dausgaben%3Bctrl%3Dkassenbuch_list%3Brow%3D4239%3Btype%3Dtxt' type='text'></td><td class='cl'><div>kst2</div></td><td class='cl'><select name='ctrlvcol%3Dbeschreibung%3Bctrl%3Dkassenbuch_list%3Brow%3D4239%3Btype%3Dtxt'><option value='Lebensmittel' selected>Lebensmittel</option>
<option value='Reinigunsmaterial/Reinigung'>Reinigunsmaterial/Reinigung</option>
 

Neue Beiträge

Zurück