Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [js] onclick a onsubmit
hhg
post 5.11.2006, 14:39:10
Post #1





Grupa: Zarejestrowani
Postów: 316
Pomógł: 0
Dołączył: 5.07.2006

Ostrzeżenie: (0%)
-----


mam formularz ktory po otrzymaniu "hasła" przeniesie odwiedzajacego na strone ktorej nazwa jest polaczeniem hasla i .htm

oto formularz:

Kod
<form name="form">
                            Wpisz hasło: <input type="password" name="haselko">
                            <input type="button" name="open" value="Wy¶lij" onclick="check_pass()">
                        </form>


oto funkcja check_pass()

Kod
<script language="javascript" type = "text/javascript">
<!--
function check_pass()
{
    var strzal = document.form.haselko.value;
    if (strzal == "ukryty_plik") self.location = strzal + ".htm";
    else alert("Złe hasło!");
}
//-->
</script>


jezeli zastosuje jako submit w formularzu onclick to trzeba kliknac na button zeby skrypt sie wykonał. Chciałbym jednak żeby wykonywał sie też po wcisnieciu Enter jak skoncze pisac hasło. Dlatego zastapilem onclick - na onsubmit

Kod
<form name="form">
                            Wpisz hasło: <input type="password" name="haselko">
                            <input type="button" name="open" value="Wy¶lij" onsubmit="check_pass()">
                        </form>

ale z onsubmit wogole skrypt sie nie wykonuje.. tzn strona sie przeladowywuje ale obojetnie czy wpisze dobre czy zle haslo to nic sie nie dzieje: ani nie dostane alerta ze zle haslo ani mnie nie przeniesie na tajną strone.

Co robie źle?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 5)
jol.us_
post 5.11.2006, 15:09:09
Post #2





Grupa: Zarejestrowani
Postów: 132
Pomógł: 0
Dołączył: 10.12.2003
Skąd: Kraków

Ostrzeżenie: (0%)
-----


onsubmit daj sobie do tagu form.

  1. <form name="form" onsubmit="check_pass();">



aha, i input powinenes miec typu submit a nie button

Ten post edytował jol.us_ 5.11.2006, 15:13:26


--------------------
run Forest run ...
Go to the top of the page
+Quote Post
ciapek888
post 5.11.2006, 15:16:54
Post #3





Grupa: Zarejestrowani
Postów: 21
Pomógł: 0
Dołączył: 10.09.2006
Skąd: Wawa

Ostrzeżenie: (0%)
-----


po pierwsze atrybut onsubmit daje się na tagu <form> a nie <input>,
po drugie nie możesz dać onsubmit, bo wtedy twój skrypt się wykonuje w tym czasie co dane są wysyłane, czyli pewnie nie wykonuje się wogóle, bo wysłanie formularza powoduje przeładoawnie strony
musisz jednak zrobić tak, jak było w pierwszej wersji, a twoje pytanie powinno brzmieć:
Jak zrobić, żeby po naciśnięciu entera, mój skrypt się wykonał?
ja tego niewiem ale chętnie się dowiem...

// - dopisane
zrób tak jak napisał jol.us_ i napisz czy działa?

Ten post edytował ciapek888 5.11.2006, 15:18:48


--------------------
Ciapson
Go to the top of the page
+Quote Post
jol.us_
post 5.11.2006, 15:37:42
Post #4





Grupa: Zarejestrowani
Postów: 132
Pomógł: 0
Dołączył: 10.12.2003
Skąd: Kraków

Ostrzeżenie: (0%)
-----


Zeby strona sie nie przeladowala musi sie to przerobic.

Funkcje umieszczona w head:
  1. <script type = "text/javascript">
  2. <!--
  3. function check_pass() {
  4. var strzal = document.form.haselko.value;
  5. if (strzal == "ukryty_plik") {
  6. self.location = strzal + ".htm";
  7. return true;
  8. } else {
  9. alert("Złe hasło!");
  10. return false;
  11. }
  12. }
  13. //-->


Noi formularz
  1. <form name="form" onsubmit="return check_pass();">
  2. Wpisz hasło: <input type="password" name="haselko">
  3. <input type="submit" name="open" value="Wyślij">
  4. </form>



Dygresja:
Zakladam ze to tylko przyklad, bo istota sprawdzania hasla ktore jest zapisane w zrodle to pomylka.

Ten post edytował jol.us_ 5.11.2006, 15:43:50


--------------------
run Forest run ...
Go to the top of the page
+Quote Post
hhg
post 5.11.2006, 18:06:23
Post #5





Grupa: Zarejestrowani
Postów: 316
Pomógł: 0
Dołączył: 5.07.2006

Ostrzeżenie: (0%)
-----


faktycznie jol.us_ to jest kwestia glownie tych return true i false... nie przypuszczalbym

oczywiscie ze walidacja w js to lipa ale tematu pracy sie nie wybiera winksmiley.jpg
Go to the top of the page
+Quote Post
ciapek888
post 5.11.2006, 19:38:13
Post #6





Grupa: Zarejestrowani
Postów: 21
Pomógł: 0
Dołączył: 10.09.2006
Skąd: Wawa

Ostrzeżenie: (0%)
-----


a u mnie coś nie działa:
Kod
function sprawdz() {
    var a = 0;
    var alarm = '';
    with(document.f) {
        if(imie.value=='') {alarm += ' imię'; a++}
        if(nazwisko.value=='') {alarm += (a)? ', nazwisko': ' nazwisko'; a++}
        if(pass1.value=='') {alarm += (a)? ', hasło': ' haslo'; a++}
        if(pass2.value=='') {alarm += (a)? ', potwierdzenie hasła': ' potwierdzenie hasła'; a++}
        if(pass1.value!=pass2.value) {alert('Hasło i potwierdzenie nie zgadzają się!'); return false}
        if(alarm.length>0) {alert('Wpisz'+alarm+'!'); return false}
    }
    var hid = document.getElementById('hid')
    zawartosc = 'jakas_tam _zawartosc'
    hid.innerHTML = zawartosc; return true
}
jak np nie wpisuje potwierdzenia to wyskakuje komunikat, ale i tak sie wywyła blinksmiley.gif
dlaczego?

Ten post edytował ciapek888 5.11.2006, 20:00:31


--------------------
Ciapson
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 14.08.2025 - 06:26