jquery - skrypt nie wykonuje się

0

Witam.

Próbuje napisać prostą stronkę która wymaga logowania.
Po przejrzeniu paru kursów (nie mam w ogóle doświadczenia z programowaniem webowym) napisałem coś takiego:

plik main.js

var haslo = prompt('PODAJ HASLO');

pole = document.getElementById('name');
pole.visibility

if (haslo === 'abc')
{
alert('haslo ok');
$( "div:hidden" ).show( "fast" );
}
else
{
alert('haslo bledne');
}

plik intex.html

<html>
	<head>
		<title>TEST</title>
		<meta http-equiv="Content-Type" content="text/html; ccharset=iso=8859-2 " />
	</head>

	<body>
		<div style="display:none;"><button type="button" id="A">A</button></div> 
		<div style="display:none;"><button type="button" id="B">B</button></div> 
		<div style="display:none;"><button type="button" id="C">C</button></div> 
		<div style="display:none;"><input type="text" id="name" value=""> </div> 
		<script src="http://code.jquery.com/jquery-latest.min.js"></script>
		<script src="/js/main.js"></script>
	</body>
</html>

W tej postaci działa to poprawnie (po wpisaniu hasła "abc" wyskakuje komunikat "haslo ok" a następnie przyciski i edit się pokazują c), jednak gdy usunę z kodu input skrypt przestaje działać (po wpisaniu hasła "abc" nie dzieje się nic).

index.html po modyfikacji (nie działający):

<html>
	<head>
		<title>TEST</title>
		<meta http-equiv="Content-Type" content="text/html; ccharset=iso=8859-2 " />
	</head>

	<body>
		<div style="display:none;"><button type="button" id="A">A</button></div> 
		<div style="display:none;"><button type="button" id="B">B</button></div> 
		<div style="display:none;"><button type="button" id="C">C</button></div> 
		<script src="http://code.jquery.com/jquery-latest.min.js"></script>
		<script src="/js/main.js"></script>
	</body>
</html>

Możecie mi łopatologicznie wyjaśnić dlaczego tak się dzieje ?

1

Dzieje sie tak poniewaz jQuery nie znajduje elementu o id 'name', wywala bład i konczy dzialanie.
Wcisnij sobie F12 to Ci wyskoczy konsola w ktorej sie czyta bledy

1

to nie jquery wywala blad a ta linijka: pole.visibility

jest niekompletna.

jquery zwroci nulla i wtedy dopiero ta linjka moze sie wykrzaczcy:) ale ogolnie jak kolega poradzil. koprzystal z konsoli, tam na czerwono ci to wyskoczy :)

0

dołączasz jQuery, ale w ogóle nie korzystasz z tej biblioteki :P
document.getElementById to NIE jQuery

console.log(pole) Ci zapewne więcej podpowie, a mianowicie, że visibility nie istnieje. do styli odnosisz się poprzez: element.style czyli np. element.style.visibility = "hidden"; czy co tam chcesz

0

Dziękuję serdecznie :).
Czepiłem się tego if'a i nawet nie spojrzałem co jest wyżej ... :/
Wspomniana konsola jest rzeczywiście bardzo pomocna :).

@dzek69 tak z czystej ciekawości (bez żadnej zgryźliwości - żebyś mnie źle nie zrozumiał):
Piszesz że w ogóle nie korzystam z biblioteki jQuery.
A ta cześć:

alert('haslo ok');
$( "div:hidden" ).show( "fast" );

nie wykorzystuje tej biblioteki ?

0

a fakt, zagubiła mi się ta linijka jak czytałem (głównie dlatego, że źle formatowanego/nie formatowanego kodu zazwyczaj nie czytam, bo szkoda nerwów ;] a błąd był widoczny wyżej).

i tylko dla tej jednej linijki ładujesz jQuery? :p

0

@dzek69 tak jak wspomniałem to moje pierwsze kroczki w tym języku :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1