Problem z przyciskiem typu "submit"

0

Witam,
Mam formularz w którym mam 2 inputy o parametrach name = "NrOferty" i "Cena". No i chodzi o to, że jak użytkownik nic nie wpisze to niech przy próbie zatwierdzenia formularza
<input value="Dodaj nową ofertę" type="submit" class="textinput" ONCLICK="if(document.NrOferty.value==''){alert('Nie podałeś numeru oferty.');return false;}; if(document.Cena.value==''){alert('Nie podałeś ceny.');return false;}; return confirm('Jesteś pewien, że chcesz dodać nową ofertę?');">
wyświetli się informacja, że nie wypełnij pól. Powyższy kod nie działa, bo formularz zostaje zatwierdzany to raz a dwa, że nie wyświetla się żaden alert. Jak dam samo
ONCLICK="return confirm('Jesteś pewien, że chcesz dodać nową ofertę?');"
to wyświetla mi się zapytanie, wobec czego wygląda na to, że warunek if przechodzi, tylko alert się nie wyświetla. Ma ktoś jakiś pomysł co jest nie tak.

2

Nie pisz tego w ten sposób. Widzisz chyba, że stosunkowo skomplikowany kod w onclick wygląda po prostu niedorzecznie! Ten skrypt powinien być w osobnym pliku, np. walidacja_formularza.js. Wtedy będziesz mógł napisać go normalnie: w wielu liniach, z wcięciami itp. Plik ze skryptem dołączałbyś do dokumentu HTML, wstawiając przed znacznikiem zamykającym </body> tag <script type="text/javascript" src="walidacja_formularza.js"></script>.

Żeby to działało, musiałbyś jeszcze przerobić ten skrypt tak, by dołączyć go do przycisku (bo nagle znalazł się w osobnym pliku i nie jest związany z przyciskiem). Masz dwie możliwości:
A) Dołączać ten kod walidacyjny za pomocą metod DOM. Czyli np. dobrałbyś się do przycisku za pomocą document.getElementByID(...) (przycisk musiałby mieć ID) i potem podstawił pod własność onclick przycisku funkcję zawierającą kod walidacyjny.
B) Kod walidacyjny zamknąłbyś w funkcji o nazwie np. sprawdzPoprawnoscFormularza(). Potem w kodzie HTML, w onclick miałbyś jedynie return sprawdzPoprawnoscFormularza().

Ewentualnie możesz wybrać wariant pierwszej opcji, tj. użyć jQuery.

Tak się to robi na komercyjnych witrynach www. Nigdy nie masz czegoś takiego, że w onclick ładujesz kilka warunków i wywołań alert i confirm, bo to po prostu fatalnie się czyta, zmienia i utrzymuje (co sam widzisz: nie działa Ci i ciężko to ugryźć).

Polecam naukę metod DOM lub biblioteki w stylu jQuery, bo tu masz pewne braki. Tu masz kurs po polsku: http://kurs.browsehappy.pl/JavaScript/DOM

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