Skrypt na sprawdzanie poprawności tekstu+odnośnik

0

Witam,
Mam problem z funkcją która ma na celu sprawdzenie czy została wpisana poprawna data w pole tekstowe. Po poprawnym wpisaniu daty guzik ma za zadanie przenieść nas na drugą stronę. Pisałem kilka różnych wersji tego skryptu ale żaden nie chce działać, podpowie ktoś jak to zrobić?

link do szkieletu: https://codepen.io/Marwoj/pen/oabpxW

Dodam że jestem początkującym i dopiero się uczę js'a.

1

Nie jestem ekspertem, ale wygląda na to, że Twój "else" jest w środku "if", zamiast po. Powinno chyba być tak?:

<html>
<head>
<meta charset="UTF-8">
</head>
<body>
<script type="text/javascript">
function password()
{
var wynik = document.getElementById('pole');
	if(wynik!="07.10.2017")
	{
		alert("Błędna data, spróbuj innej");	
	}
	else
	{
		file_get_contents('index2.html');
	}
}
</script>
    <input type="text" size="10" id="pole" value="DD.MM.RRRR"/>
	<br><br>
	<button onClick="password()">Sprawdź poprawność</button>
</body>
</html>
0

Fakt, teraz działa alert ale po wpisaniu poprawnej daty nadal wyskakuje błąd. A jeżeli zamienie miejscami warunki pod if i else i usune negacje to nic sie nie dzieje :/

1

Po getElementById() wypadałoby jeszcze dodać .value, bo sprawdzasz, czy string jest różny od text inputu :)

<html>
<head>
<meta charset="UTF-8">
</head>
<body>
<script type="text/javascript">
function password()
{
var wynik = document.getElementById("pole").value;
	if (wynik!="07.10.2017")
	{
		alert("Błędna data, spróbuj innej");
		
	}
	else
	{
		file_get_contents('index2.html');
	}
}
</script>
    <input type="text" size="10" id="pole" value="DD.MM.RRRR"/>
	<br><br>
	<button onClick="password()">Sprawdź poprawność</button>
</body>
</html>

0

Cos jest nie tak z tym odsyłaczem, jak dam zamiast niego alert to wszystko działa. Jakaś propozycja na przeniesienie do nowej karty przy else? Nie jestem pewien czy a href tu zadziała.

1

Generalnie to nie czuję się zbyt kompetentna, bo ostatni raz pisałam w JS na studiach, ale w Internetach piszo tak: https://stackoverflow.com/questions/10693518/is-there-a-javascript-way-to-do-file-get-contents , może to będzie pomocne.

0

Dobra, z tego poziomu już sobie poradzę, dzięki za pomoc :)

1

Pytanie jest inne - czemu chcesz umieszczać datę w polu tekstowym, skoro jest do tego celu specjalnie dedykowane pole <input type="date"> (https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/date), które po kliknięciu automatycznie pokazuje kalendarz, z którego można wskazać datę.

0

forma daty jest obojętna, byle by po wpisaniu poprawnej button przekierowywał do następnej strony

1

Zobacz tutaj - https://jsfiddle.net/ncue7xyp/. zmieniłem typ pola z text na date. Teraz jest to trochę lepiej zrobione.

Ponadto masz działające sprawdzenie - jeśli ustawisz datę na 7 października 2018 to pokazuje komunikat, że data jest OK, w innym przypadku wyskakuje komunikat o błędzie.

Natomiast to, co chcesz zrobić nie ma prawa działać - funkcja file_get_contents nie jest funkcją Javascript, ale PHP, w związku z czym to nie może się udać, w ten sposób nie wyświetlisz innej strony ani nie przekierujesz użytkownika w żadne inne miejsce.

Możesz poczytać sobie na SO - https://stackoverflow.com/questions/10693518/is-there-a-javascript-way-to-do-file-get-contents

0

chodziło mi konkretnie o location.href="url"; teraz wszystko śmiga :D

0

Tak podejrzewałem, ale nie chciałem dawać gotowca, tylko Cię naprowadzić :P Ważne, że się udało.

Aczkolwiek jeszcze taka uwaga - bardziej zalecane jest stosowanie window.location.replace.

Do poczytania - https://appendto.com/2016/04/javascript-redirect-how-to-redirect-a-web-page-with-javascript/

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