Fieldsets deaktiviren

SeeSharpNewBee

Erfahrenes Mitglied
Hallo,

ich versuche gerade eine Funktion zu schreiben, die komplette Fieldsets inkl. deren Inhalt deaktivirt, nur will das bei mir nicht funktionieren, bitte um hilfe wo der fehler liegt. Danke!

HTML:
<script type="text/javascript">

fuction disableFieldsets(fieldName)
{
	if(fieldname == "csv")
	{
		Document.forms["RecoveryOptions"].elements["csv"].disabled = true;
		Document.forms["RecoveryOptions"].elements["db"].disabled = false;		
	}
	else if(fieldName == "db")
	{
		Document.forms["RecoveryOptions"].elements["csv"].disabled = false;
		Document.forms["RecoveryOptions"].elements["db"].disabled = true;		
	}
}

</script>

</head>
<body>
	<form name="RecoveryOptions">
		<table align="center" cellpadding="10px">
			<tr>
				<td><input type="radio" name="Recovery" value="csv" onClick="disableFieldsets(db)">Recovery from CSV</td>
    			<td><input type="radio" name="Recovery" value="db" onClick="disableFieldsets(csv)">Recovery from Database</td>
    		</tr>
    	</table>
		<table width="50%" align="center"><tr><td>
		<fieldset>
			<table width="50%" align="center">
				<tr>
					<td>
						<fieldset name="csv">
							<legend>Recovery CSV</legend>
							<table><tr>
							<td><input type="text" name="filepath" size="100"></td>
							<td>&nbsp;&nbsp;&nbsp;</td>
							<td><input type="button" name="doRecoveryCSV" value="Recovery"></td>
							</tr></table>
						</fieldset>
					</td>
				</tr>
				<tr>
					<td>
						<fieldset name="db">
							<legend>Recovery Database</legend>
							<table align="center"><tr>
							<td><input type="radio" name="chooseEnd" value="front">Frontend</td>
							<td><input type="radio" name="chooseEnd" value="back">Backend</td>
							<td>&nbsp;&nbsp;&nbsp;</td>
							<td><input type="button" name="doRecoveryDB" value="Recovery"></td>
							</tr></table>
						</fieldset>
					</td>
				</tr>
			</table>
		</fieldset>
		</td></tr></table>
	</form>
</body>
 
Das Problem ist wohl, dass das fieldset-Element weder ein name- noch ein disabled-Attribut besitzt. Du musst die Funktion also dahin umschreiben, dass nur die Formularelemente selbst deaktiviert werden.
 
Ok, danke, ich habe die funktion jetzt verändert, und auch den html etwas verändert, aber es funktioniert immer noch nicht, was ist an meiner funktion falsch? Danke

PHP:
<script type="text/javascript">

function disableAll (pForm, fn) {
   for (i=0; i<pForm.length; i++)
   {
   	if(fn == "csv")
   	{
   		if (pForm.elements[i].name.substr(0,2) == "db")
   		{
     		pForm.elements[i].disabled = true;
    	}
    	else if(pForm.elements[i].name.substr(0,2) == "cs")
    	{
    		pForm.elements[i].disabled = false;
    	}
    }
    else if(fn =="db")
    {
    	if (pForm.elements[i].name.substr(0,2) == "db")
   		{
     		pForm.elements[i].disabled = false;
    	}
    	else if(pForm.elements[i].name.substr(0,2) == "cs")
    	{
    		pForm.elements[i].disabled = true;
    	}   
    }
   }
}
</script>

Ich weiß soetwas gehört in die anfängerkategorie, und ich sollte lieber bücher/tuts/etc. lesen, jedoch kann ich mir leider nicht aussuchen ob ich diese funktion erstellen will, und zum tuts lese habe ich auch momentan leider keine zeit, also hoffe ich das du / jemand mir hilft, danke!
 
Probier mal folgende Funktion:
Code:
function disableFieldset( objID, disabledState )
{
	if( typeof disabledState != "boolean" ) {
		disabledState = true;
	}
	var obj = document.getElementById(objID);
	var elems = obj.getElementsByTagName("input");
	for(var i=0; i<elems.length; i++) {
		elems[i].disabled = disabledState;
	}
}
Dazu weist du den beiden fieldset-Elementen IDs statt Namen zu. Der Aufruf sieht dann wie folgt aus:
HTML:
<label><input type="radio" name="Recovery" value="csv" onClick="disableFieldset('db'); disableFieldset('csv', false)">Recovery from CSV</label>
<label><input type="radio" name="Recovery" value="db" onClick="disableFieldset('csv'); disableFieldset('db', false)">Recovery from Database</label>
 
Hi,

danke für dein Beispiel, hat aber leider nicht Funktioniert, ich hab schon geschaut, ob ich irgendwo etwas vergessen hab oder Tippfehler, aber ich hab leider nichts finden können.

Ich habe meine Datei angehängt! Danke!
 

Anhänge

Code:
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>

<script type="text/javascript">

function disableFieldset( objID, disabledState )
{
    if( typeof disabledState != "boolean" ) {
        disabledState = true;
    }
    var obj = document.getElementById(objID);
    var elems = obj.getElementsByTagName("input");
    for(var i=0; i<elems.length; i++) {
        elems[i].disabled = disabledState;
    }
}
</script>

</head>
<body>
    <form name="RecoveryOptions">
        <table align="center" cellpadding="10px">
            <tr>
                <td><label><input type="radio" name="Recovery" value="csv" onClick="disableFieldset('db'); disableFieldset('csv', false)">Recovery from CSV</label></td>
                <td><label><input type="radio" name="Recovery" value="db" onClick="disableFieldset('csv'); disableFieldset('db', false)">Recovery from Database</label></td>
            </tr>
        </table>
        <table width="50%" align="center"><tr><td>
        <fieldset>
            <table width="50%" align="center">
                <tr>
                    <td>
                        <fieldset id="csv">
                            <legend>Recovery CSV</legend>
                            <table><tr>
                            <td><input type="text" name="csvfilepath" size="100"></td>
                            <td>&nbsp;&nbsp;&nbsp;</td>
                            <td><input type="button" name="csvdoRecoveryCSV" value="Recovery"></td>
                            </tr></table>
                        </fieldset>
                    </td>
                </tr>
                <tr>
                    <td>
                        <fieldset id="db">
                            <legend>Recovery Database</legend>
                            <table align="center"><tr>
                            <td><input type="radio" name="dbchooseEnd" value="front">Frontend</td>
                            <td><input type="radio" name="dbchooseEnd" value="back">Backend</td>
                            <td>&nbsp;&nbsp;&nbsp;</td>
                            <td><input type="button" name="dbdoRecoveryDB" value="Recovery"></td>
                            </tr></table>
                        </fieldset>
                    </td>
                </tr>
            </table>
        </fieldset>
        </td></tr></table>
    </form>
</body>
</html>
 

Neue Beiträge

Zurück