Uczę się JavaScript przez Head First Series Book by O'Reilly Media i właśnie osiągnęłam rozdział, w którym muszę użyć imprezy onchange.

Testuję przy użyciu Safari / OS X Lion, Firefox, Chrome, Opera i IE / Windows, ale ma ten sam wynik.

Biorąc pod uwagę ten kod:

<html>
    <head>
        <title>onChange Test</title>
        <script type="text/javascript">
            function itWorks(){
                alert("it works!");   
            }
        </script>
    </head>
    <body>
        <form>
            <input type="text" onchange="itWorks();" />
            <input type="text" onchange="itWorks();" />
        </form>
    </body>
<html>

Czy jest poprawne, aby powiedzieć, że impreza {X0}} działa, gdy zmieniamy się z jednego pola do drugiego, czy jest on aktywowany tylko przez kliknięcie lub za pomocą klawisza Tab?

2
Black Knight 27 listopad 2011, 16:11

4 odpowiedzi

"Zmieniamy się z jednego pola do drugiego, czy to, czy klikając lub za pomocą klawisza kart" -

To onblur.

Wydarzenie, które kodowałeś pożary, gdy zmieniasz wartość wejścia, a następnie zostaw pole. Np.: Wprowadź coś w polu, a następnie naciśnij klawisz Tab.

Twój przykładowy kod działa zgodnie z oczekiwaniami.

1
Sage 27 listopad 2011, 12:15

Opisane zachowania są Onfocus. Onchange wykonuje, gdy wartość wprowadzania zmian. Jeśli wpiszesz coś w dziedzinie, powinien działać.

0
Alan 27 listopad 2011, 12:15

"Wystarczy wyjaśnić, wydarzenie Onchange działa, gdy zmieniamy się z jednego pola do drugiego, czy to, czy klikając lub używając klawisza Tab, prawda?"

Tak - tak długo, jak zmieniła się wartość

Nie jestem pewien, co to jest pytanie: Twój kod działa! I Testowano go na jsfiddle.net - co jest świetne do learing / testowanie JavaScript.

(Powinieneś zamknąć swój znacznik HTML BTW) ...

0
Neil Thompson 27 listopad 2011, 12:18

Oto, co jest HTML5 Draft Spec mówi:

Nieprawidłowe kroki są następujące:

Jeśli element jest elementem wejściowym, a zdarzenie zmian ma zastosowanie do elementu, a element nie ma określonej aktywacji zachowanie, a użytkownik zmienił wartość elementu lub jego listę Wybrane pliki, gdy kontrola została skoncentrowana bez zobowiązania Zmień, a następnie strzelaj proste zdarzenie, że bąbelki o nazwie Zmień element.

Unfocus element.

Ogień proste zdarzenie o nazwie rozmycie w elemencie.

Należy pamiętać, że Zmiana może strzelać innym razem. Spec również mówi:

... w dowolnym momencie użytkownik popełnia zmianę wartości lub listy elementów Wybrane pliki, agent użytkownika musi wtedyować zadanie, aby strzelać prostym Wydarzenie, że bąbelki o nazwie Zmień w elemencie wejściowym.

I zapewnia kilka przykładów "popełnienia zmiany"

Przykładem interfejsu użytkownika z działaniem zatwierdzania byłoby sterowaniem przesyłania plików, który składa się z jednego przycisku, który przynosi okno dialogowe Wybór pliku: Po zamknięciu okna dialogowego, jeśli wybór pliku zmienił się w wyniku tego, a następnie użytkownik ma popełnił nowy wybór plików.

Innym przykładem interfejsu użytkownika z działaniem zatwierdzania byłoby kontrolą daty, która umożliwia zarówno dane wejściowe użytkownika, jak i wyboru użytkownika z kalendarza rozwijanego: podczas gdy wejście tekstowe może nie mieć wyraźnego kroku zatwierdzenia, wybierając datę z kropli Kalendarz w dół, a następnie odrzucenie spadku byłoby akcją popełnienia.

0
Community 20 czerwiec 2020, 09:12