Stworzyłem prosty formularz. Kilka pól, list rozwijalnych i standardowy "Klawisz wyślij". Wewnątrz formularza jest drugi klawisz, który ma po prostu wywołać banalny kod JavaScript powodujący wpisanie określonej wartości do jednego z pól formularza.
Kod JS to:
- Kod: Zaznacz cały
function randomize_time()
{
edit_post.date_second.value = "00";
return false;
}
Gdzie: edit_post to nazwa formularza wewnątrz którego znajduje się pole date_second, które ma przyjąć zadawaną wartość.
Klawisz wywołujący ten kod wygląda tak:
- Kod: Zaznacz cały
<button onclick="javascript:randomize_time(); return false;">Czas losowy</button>
Pomimo tego, że zarówno w kodzie funkcji JS, jak i w wywołaniu jej w HTMLu występuje return false;, Firefox z uporem maniaka oprócz wywołania tej funkcji powoduje przeładowanie strony - to znaczy zachowuje się tak, jakby kliknięto klawisz "Wyślij" w tym formularzu. Co jest oczywiście nieprawdą, bo klikam "Czas losowy", a nie "Wyślij".
Pod IE tego problemu nie ma.
Czy ktoś może mi powiedzieć, co robię źle?
Albo co zrobić, żeby osiągnąć taką funkcjonalność, która do tej pory wydawała mi się logiczna i oczywista: Użytkownik klika "Czas losowy" to uruchamiana jest funkcja randomize_time() i NIC WIĘCEJ SIĘ JUŻ NIE DZIEJE. Jeśli zaś użytkownik kliknie klawisz "Wyślij", to formularz jest wysyłany (przetwarzany przez skrypt PHP) i też NIC WIĘCEJ SIĘ JUŻ NIE DZIEJE - to znaczy, w tym przypadku funkcja randomize_time() NIE JEST uruchamiana.