Witam. Stworzyłem ostatnio krótki skrypt w formularzu mający liczyć pole i obwód prostokąta,jednak napotkałem następujący problem:
Po wpisaniu liczb do pól "bok a " oraz "bok b" i naciśnięciu przycisku "oblicz" miejsce na wartości pola obwodu jak i pola prostokąta pozostają puste.
Jako iż jestem początkujący w Javascript prosiłbym o poprawę mojego skryptu aby mógł on działać poprawnie.
Zdjęcia sryptu w załączniku.
Wiesz, jak chcesz, żeby inni Ci pomogli, to pomóż też innym w walce z Twoim kodem - nie wklejaj zdjęć, tylko wrzuć kod bezpośrednio korzystając z markdown:
```javascript
Miejsce na Twój kod źródłowy
```
<input onclick="licz.(this.form)">
To na pewno ma tak wyglądać?
sugar_hiccup napisał(a):
<input onclick="licz.(this.form)">
To na pewno ma tak wyglądać?
this form czyli ma liczyć dla tego formularza (prawdopodobnie )tak jak mówiłem jestem początkujący w Javascript
superdurszlak napisał(a):
Wiesz, jak chcesz, żeby inni Ci pomogli, to pomóż też innym w walce z Twoim kodem - nie wklejaj zdjęć, tylko wrzuć kod bezpośrednio korzystając z markdown:
```javascript
Miejsce na Twój kod źródłowy
```
Jestem nowy na tym forum więc nie znam zbyt dobrze wszystkich jego opcji
Niemniej jednak na zdjęciu kod jest chyba w w miarę czytelny więc nie rozumiem w czym to ma przeszkadzać ?
Carmel napisał(a):
sugar_hiccup napisał(a):
<input onclick="licz.(this.form)">
To na pewno ma tak wyglądać?
this form czyli ma liczyć dla tego formularza (prawdopodobnie )tak jak mówiłem jestem początkujący w Javascript
faktycznie kropka to mój błąd jednak usunięcie jej nie zmienia sytuacji
Druga literówka to brak operatora między warunkami w ifie. Naprawdę, wrzuć to w formie tekstowej, bo nikomu się nie będzie chciało tego przepisywać. Poza tym debuguj to w przeglądarce. Masz takie narzędzie jak konsola. Tam ci się wyświetlą błędy.
<script type="text/javascript">
function licz(formularz)
{
if formularz.a.value==""formularz.b.value==" ")
alert("wprowadz dane");
else
{
a=formularz.a.value;
b=formularz.b.value;
formularz.p. value=a*b;
formularz.o.value=2*a+2*b;
}
}
</script>
<form name="formualrz1">
podaj bok a: <input type="text" name="a"> <br> <br>
podaj bok b: <input type="text" name="b"> <br> <br>
<input type="button" value="oblicz" Onclick="licz(this.form)"><br> <br>
wynik: <br><br>
pole prostokąta: <input type="text" name="p" > <br> <br>
obwod prostokąta: <input type="text" name="o">
</form>
</head>
<body>
<!-- tutaj wstaw tresc strony -->
</body>
</html>
<script type="text/javascript">
function licz(formularz)
{
// tutaj trzy literówki poprawione
if (formularz.a.value=="" && formularz.b.value=="")
alert("wprowadz dane");
else
{
a=formularz.a.value;
b=formularz.b.value;
formularz.p.value=a*b;
formularz.o.value=2*a+2*b;
}
}
</script>
<form name="formularz1"> <!-- tutaj była literówka -->
podaj bok a: <input type="text" name="a"> <br> <br>
podaj bok b: <input type="text" name="b"> <br> <br>
<input type="button" value="oblicz" onclick="licz(this.form)"><br> <br>
wynik: <br><br>
pole prostokąta: <input type="text" name="p" > <br> <br>
obwod prostokąta: <input type="text" name="o">
</form>
</head>
<body>
<!-- tutaj wstaw tresc strony -->
</body>
</html>
Proszę, śmiga. Naucz się trafiać w klawiaturę xD
Aha, i poza koszmarnym formatowaniem kodu, to wrzuć ten formularz do <body>
(skrypty w sumie też zazwyczaj powinno się umieszczać na samym końcu w <body>
, chociaż to już chyba zaszłość historyczna raczej, nie wiem, nie siedzę na froncie :P), zgodnie z tym komentarzem, co wygenerował ci ten pajączek. Jak będziesz ładnie formatował kod, robił wcięcia, itp., to przez zwiększoną w ten sposób czytelność, łatwiej ci będzie ogarnąć, gdzie masz błędy.
Dziękuję bardzo,działa.