webForumDet fria alternativet

Aktivera knapp - med knapptryckning?

JavaScript

15 svar · 2 353 visningar · startad av streetrobban

Medlem sedan jan. 20011 140 inlägg
Frågan#1

Hej!

Jag har två knappar, knapp 1 och knapp 2. Knapp 1 är länkad till att öppna en nya sida (target="_blank") och knapp2 leder besökaren till en annan sida.

Jag undrar om någon kan hjälpa mig med följande. Jag vill att knapp 2 ska vara inaktiverad tills det att man trycker på knapp 1.

Tack på förhand.

Medlem sedan juni 20019 519 inlägg
#2

med jquery:

$("#knapp1").one('click', function() { $("#knapp2").removeAttr("disabled");});

Där du har satt i din HTML kod att #knapp2 är disabled

Medlem sedan jan. 20011 140 inlägg
#3

Och hur får man in det i ett sammanhang som jag kan förstå? :) Jag har inte gjort knapp 2 disabled än. Både knapp 1 och knapp 2 är vanliga bilder som är länkade.

Medlem sedan juni 20019 519 inlägg
#4

#knapp1 => element som har ett id="knapp1"
#knapp2 => bör vara en input,button som kan ha disabled som ett attribut.

annars:

$("#knapp1").one('click', function( ) {
	$("#knapp2").bind("click", function( ) {
		/**** MAGIC ****/
	});
});

Så när trycker på #knapp1 binder vi #knapp2's click-event så att den kan göra något.

Medlem sedan jan. 20011 140 inlägg
#5

Hmm okej, jag har lagt in scriptet du skrev inom <header> taggen:

<script type="text/javascript">
$("#knapp1").one('click', function( ) {
	$("#knapp2").bind("click", function( ) {
		/**** MAGIC ****/
	});
});
</script>

Och skapat två knappar enligt följande:

<input type="submit" id="knapp1" name="knapp1" value=" Skriv ut ">&nbsp;&nbsp;<input type="submit" id="knapp2" name="knapp2" value=" Gå vidare " disabled>

Är jag på rätt väg?

Medlem sedan juni 20019 519 inlägg
#6

jo, fast du behöver köra DOM-ready med koden om du ha det i head

$(function( ) {

$("#knapp1").one('click', function( ) {
	$("#knapp2").bind("click", function( ) {
		/**** MAGIC ****/
	});
});

});

Sen ersätt kommentaren med något häftigare ;)

Medlem sedan jan. 20011 140 inlägg
#7

Hehe okej. Som du vet voigtann är jag nollställd när det gäller javascript och jQuery så du får gärna hjälpa mig mer med koden :)

Medlem sedan feb. 20111 inlägg
#8

Duger inte vanligt javascript: ;)

<HTML>
<HEAD>
<script type="text/javascript">
function test() {
	document.getElementById("knapp2").disabled=false;
}
</script>
</HEAD>

<BODY>
<input type="submit" id="knapp1" name="knapp1" value=" Skriv ut" onclick="test()">
<input type="submit" id="knapp2" name="knapp2" value=" Gå vidare " disabled>
</BODY>
</HTML>

Martin/

Medlem sedan juni 20019 519 inlägg
#9

Klart det gör, men jag hatar att blanda JS kod inne i HTML koden, samma sak när det gäller CSS saker.

@streetrobban vad är det som skall hända på knapp2 då?

Medlem sedan jan. 20011 140 inlägg
#10

martinwahlstrom: Det där fungerade ju alldeles prima! Finns det något sätt att få in så att ett nytt fönster öppnas med en förbestämd adress samtidigt som test() körs när man trycker på knapp1?

Medlem sedan juni 20019 519 inlägg
#11

streetrobban skrev:

martinwahlstrom: Det där fungerade ju alldeles prima! Finns det något sätt att få in så att ett nytt fönster öppnas med en förbestämd adress samtidigt som test() körs när man trycker på knapp1?

@streetrobban, gör mig den lilla tjänst att inte skriva som Martin skriver, ha inte javascript blandat i din html kod.

Bygg hellre ut jquery (eftersom du redan kör det):

$(function( ) {

$("#knapp1").one('click', function( ) {
	$("#knapp2").bind("click", function( ) {
		/**** MAGIC ****/
	}).removeAttr("disabled");
	//Javascript open window:
	window.open("minurl");
});
});
Medlem sedan jan. 20011 140 inlägg
#12

voigtann1 skrev:

@streetrobban, gör mig den lilla tjänst att inte skriva som Martin skriver, ha inte javascript blandat i din html kod.

Bygg hellre ut jquery (eftersom du redan kör det):

$(function( ) {

$("#knapp1").one('click', function( ) {
	$("#knapp2").bind("click", function( ) {
		/**** MAGIC ****/
	}).removeAttr("disabled");
	//Javascript open window:
	window.open("minurl");
});
});

För mig spelar det ingen roll vilken kod som används, så länge den fungerar :) Men med din kod får jag inte ihop funktionen riktigt. Kan du hjälpa mig att komplettera koden så funktionen funkar?

Medlem sedan juni 20019 519 inlägg
#13

Du skickar bara dina knappar, eftersom dom är submit knappar så kommer den vilja posta formuläret, vilket du inte vill, lagt upp kod: http://voigt.se/sandbox/wf/streetrobban/print.html

knapp2 vet jag inte vad du vill skall göra så jag kör bara att den inte gör något fortfarande.

Medlem sedan jan. 20011 140 inlägg
#14

Oj nu är vi nästan där! Knapp2 ska bara öppna en sida när man trycker på den.

Medlem sedan juni 20019 519 inlägg
#15

byt ut magic till vad du vill att knapp2 skall göra när du trycker på den, om det är ett nytt fönster som skall öppnas kör du window.open eller om den skall fungera så att du gå till en sida(som en vanlig länk)så kan du köra window.location

Medlem sedan jan. 20011 140 inlägg
#16

Tack för hjälpen voigtann1, det funkade ju super :)

263 ms totalt · 4 externa anrop · v20260731065814-full.1dc6f849
127 ms — deklarationer (db)
0 ms — hämta statistik (cache)
133 ms — hämta tråd, inlägg och bilagor (db)
121 ms — ändringar (db)