webForumDet fria alternativet

button enable/disable

11 svar · 458 visningar · startad av henrikjohansson

henrikjohanssonMedlem sedan maj 2000360 inlägg
#1

hur kollar man i javascript om en knapp är disable=true eller false när sidan laddas?

Jag testade så här men eftersom jag är kass på javascript så fungerade det inte..

<html>
<head>
<script language="javascript">

function check()
{
if (document.temp.falt.disabled=true){alert("JA")}
else {alert("NEJ")}
}
</script>
</head>
<body onClick="check()">

<form name="temp">
<input name="falt" type="text" id="MIN1" style="width:125px;LEFT:330px;TOP:5px;POSITION:absolute;"/>
</form>
</body>
</html>

Svaret blir alltid JA oavsett om textrutan är disablad eller inte

solbulleMedlem sedan mars 20015 287 inlägg
#2

if (document.temp.falt.disabled){alert("JA")}

Sen ska du väl ha:

<body onLoad="check()">

:)

henrikjohanssonMedlem sedan maj 2000360 inlägg
#3

ok tack det fungerade..
Kan man nu göra så att man ändrar class på knappen så att den får andra värden ur en css fil?

JojoxxMedlem sedan juni 20004 308 inlägg
#4

Le examplé:

<style type="text/css">
.foo { color: white; }
.bar { color: red; }
</style>
<form>
<input type="submit" id="mySubmit" value="Skicka">
</form>

<a href="#" onClick="document.getElementById('mySubmit').className='foo'; return false;">Tilldela klassen foo</a>
<a href="#" onClick="document.getElementById('mySubmit').className='bar'; return false;">Tilldela klassen bar</a>
henrikjohanssonMedlem sedan maj 2000360 inlägg
#5

Tackar.. fungerade utmärkt

henrikjohanssonMedlem sedan maj 2000360 inlägg
#6

Jag gjorde så här för att ha olika class beroende på om den enable eller disable. är detta bättre kod?

<link href="stil.css" type="text/css" rel="stylesheet">
<html>
<head>
<script language="javascript">

function check()
{
if (document.getElementById('falt1').disabled)
	{
	document.getElementById('falt1').className='ETT'; 
	return false;
	}
else 
	{
	document.getElementById('falt1').className='TVA'; 
	return false;
	}
}
</script>
</head>
<body onclick="check()">
<form name="temp">
<input type="submit" id="falt1" value="Skicka">

</form>
</body>
</html>

Och hur skall jag göra så att scriptet gäller för alla textfält på sidan. för sidan skall byggas upp dynamiskt och därför kan Id variera väldigt på olika textfält.

henrikjohanssonMedlem sedan maj 2000360 inlägg
#7

ingen som vet?

Erik JuhlinMedlem sedan maj 200010 687 inlägg
#8

Om det ska byggas upp dynamiskt med ett serverside-språk så är det väl bara till att lägga in alla formulärnamnen i en array på serversidan.
Sen loopar man bara igenom arrayen... :)

henrikjohanssonMedlem sedan maj 2000360 inlägg
#9

jo det skulle man juh kunna göra men saken är också den att jag helst skulle vilja sköta det med javascript eftersom det inte är jag som sköter skapandet av den övriga koden. men om det absolut inte går att göra med javascript så får man göra så.

edit: kom på att man skapar inte alla dynamiskt utan några läggs till manuellt.. men det är väl iofs inte så jobbigt ändå.

Men helst skulle jag vilja ha javascript

henrikjohanssonMedlem sedan maj 2000360 inlägg
#10

Nu fungerar det med textboxar

<link href="stil.css" type="text/css" rel="stylesheet">
<html>
<head>
<script language="javascript">

function check()
{

	for (x=0;x<document.temp.elements.length;x++)
	{
		if (document.temp.elements[x].disabled)
		{
			document.temp.elements[x].className = 'TVA';
		}
		else
		{
			document.temp.elements[x].className = 'ETT';
		}
	}
}
</script>
</head>
<body onload="check();">
<form name="temp">
<input name="1alt" type="text" value="HENRIK"/>
<input name="2123" type="text" value="HENRIK" disabled/>
<input name="3fasdft" type="text" value="HENRIK" disabled/>
<input name="4fafdglt" type="text" value="HENRIK"/>
<input name="5faghjfdfglt" type="text" value="HENRIK" disabled/>
</form>
</body>
</html>
JojoxxMedlem sedan juni 20004 308 inlägg
#11

ingen som vet?

Lugn i stormen. Alla sitter inte här och väntar på att det skall komma ett inlägg. En del har annat att gära ;)

Du bör inte ersätta name med id eftersom name behövs för själva formulärsfunktionen. Här i exemplet har jag satt samma namn som id på fälten. Vid onClick loopas alla formulärs-element igenom och bara typen "text" ändras klass på beroende om de är disabled eller inte. Det bör ge en vink om hur du kan göra.

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

<html>
<head>
	<title>Untitled</title>
<style type="text/css">
.foo { background-color: red; }
.bar { background-color: blue; }
</style>
<script type="text/javascript" language="JavaScript">
function checkForm(formobj){
	for(var n=0;n<formobj.length;n++){
		if(formobj[n].type=="text"){ document.getElementById(formobj[n].name).className=(formobj[n].disabled)?"foo":"bar"; }
	}
}
</script>
</head>
<body onClick="checkForm(document.temp);">
<form name="temp" onSubmit="return false;">
<input type="text" name="falt1" id="falt1" value="ett värde">
<input type="text" name="falt2" id="falt2" value="ett annat värde" disabled>
<input type="submit" value="Skicka">
</form>

</body>
</html>
henrikjohanssonMedlem sedan maj 2000360 inlägg
#12

Tackar. Det fungerar exemplariskt :)

131 ms totalt · 3 externa anrop · v20260731065814-full.0e50b1ef
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
128 ms — hämta tråd, inlägg och bilagor (db)