Hallöchen,
ich habe ein Formular u.a. mit dem folgenden Feldern:
name: tv typ checkbox
name vv typ textfeld
name: tnv typ checkbox
name nv typ textfeld

Diese Felder werden nun mittels einer Datenbankabfrage gefüllt, so dass die einzelnen Felder mehrmals im Formular (aber mit dem gleichen Namen) vorkommen.
Ich möchte nun folgendes erreichen:
Wenn das Feld tv gecheckt ist muß das Feld vv einen Wert enthalten. Wenn das Feld tv nicht gecheckt ist, darf das Feld vv keinen Wert enthalten. Ebenso verhält es sich mit den Fenern tnv und nv.

Ich habe mir jetzt eine JS-Funktion gebastelt. Ein if/else if-Zweig funktioniert auch ganz gut. Warum springt die Funktion aber nicht in den anderen if/else if-Zweig?????

Was mache ich nur falsch?

Hier nochmal mein Quellcode:

Formular:
<table width="100%">
<cfoutput query="ToolVorhanden">
<tr>
<td width="5%">
</td>
<td align="left" width="15%">
<input type="Checkbox" name="tv" value="#id#" align="LEFT" checked>#name# <cfif #kommentar# is not ''>(#kommentar#)</cfif>
</td>
<td width="15%">
Version:
</td>
<td width="15%" align="left">
<input type="Text" name="vv" value="#version#" size="20" align="LEFT">
</td>
<td width="10%" align="left">
<cfif #offen# is 1>
<input type="checkbox" name="ToolVoffen" value="#id#" align="left" checked>offen
<cfelse>
<input type="checkbox" name="ToolVoffen" value="#id#" align="left">offen
</cfif>
</td>
</tr>
</cfoutput>
</table>
<table>
<cfoutput query="ToolNichtVorhanden">
<tr>
<td width="5%">
</td>
<td width="15%">
<input type="Checkbox" name="tnv" value="#id#" align="LEFT">#name# <cfif #kommentar# is not ''>(#kommentar#)</cfif>
</td>
<td width="15%">
Version:
</td>
<td width="15%">
<input type="Text" name="nv" size="20" align="LEFT">
</td>
<td width="10%">
<input type="checkbox" name="ToolNVoffen" value="#id#" align="left">offen
</td>
</tr>
</cfoutput>
</table>

Hier ist mein JS:

<script language="JavaScript">
<!--
function checkFormular()
{
if(document.beschaffung.tnv.length)
{
for(i=0;i<=document.beschaffung.tnv.length;++i)
if(document.beschaffung.tnv[i].checked == true)
{
if(document.beschaffung.nv[i].value == '')
{
alert('Bitte geben Sie eine Version für das Tool ein!');
document.beschaffung.nv[i].select();
document.beschaffung.nv[i].focus();
return false;
}
}
}
else if(!document.beschaffung.tnv.length)
{
if(document.beschaffung.tnv.checked == true)
{
if(document.beschaffung.nv.value.length == 0)
{
alert("Bitte geben Sie eine Version für das Tool ein!");
document.beschaffung.nv.select();
document.beschaffung.nv.focus();
return false;
}
}
}
if(!document.beschaffung.tv.length)
{
for(i=0;i<=document.beschaffung.tv.length;++i)
if(document.beschaffung.tv[i].checked == true)
{
if(document.beschaffung.nv[i].value == '')
{
alert('Bitte geben Sie eine Version für das Tool ein!');
document.beschaffung.vv[i].select();
document.beschaffung.vv[i].focus();
return false;
}
}
}
else if(document.beschaffung.tv.length)
{
if(document.beschaffung.tv.checked == true)
{
if(document.beschaffung.vv.value.length == 0)
{
alert("Bitte geben Sie eine Version für das Tool ein!");
document.beschaffung.vv.select();
document.beschaffung.vv.focus();
return false;
}
}
}
}
//-->
</script>

Eine weitere Frage noch. Wieso erscheint, wenn man die checkbox (tv oder tnv) nur einmal hat über alert(document.beschaffung.tv.length) immer undefined????

Vielen Dank vorab.

Lydia