Pojawiający się przycisk po wpisaniu czegoś w pole textowe

0

Witam,
Może mi ktoś podpowiedzieć jak zrobić aby po wpisaniu jakiegos znaku w pole input text pojawiał się przycisk a gdy usunę ten znak to przycisk znika. Proszę o pomoc.

0

Zdarzenie onChange w <input />, podpinasz funkcję w JS która sprawdza długość string'a w Twoim textboxie, jeśli != 0 to zmienia parametr buttona o danym id visible na true, a jesli nie to na false :)

cos w stylu: document.getElementById("AjDiBatona").style.visible = true/false; :)

0

onchange chyba odpali sie dopiero po utracie focusa na inpucie tekstowym, wiec polecam (dodatkowo! nie zamiast) zdarzenie onkeyup

0

Nie rozumiem dlaczego event keyup a nie keydown, dodatkowo podpiął bym jeszcze pod onpaste i oncut (z oncut-em jest tkai mankament ze jak wybierzesz opcje z menu kontekstowego wytnij to zadziała a na opcje usuń nie zareaguje)

0

tak, piszmy coś co działa tylko pod IE (i widzę, że chyba firefox to rozumie, żeby zachować kompatybilność, co nie zmienia faktu, że dla programisty tak naprawdę te dwa zdarzenia NIE ISTNIEJA!)

dlaczego onkeyup - bo onkeydown wykona się tylko raz jeżeli przytrzymasz klawisz - w tym przypadku nie ma to dużego znaczenia, skoro limitujemy długość wpisanego tekstu do 1 znaku, ale jednak lepszym nawykiem będzie nauczenie go używania onkeyup w takich przypadkach, żeby nie było kiedyś niespodzianek ;)

0

1 - keydown odpali się po każdym dodanym znaku (niemniej pomyliłem się i powinieneś zastosować keypress)
2 - co do onpaste i oncut - lepiej obsłużyć je tylko w niektórych przeglądarkach niż w żadnej
3 - jeśli sprawa jest mega istotna i rozwiązanie musi być mega pewne (tzn że nie wystarcza nam 99% w trakcie focusa i 100% podczas wysylania formatki) to jedynym pewnym rozwiązaniem jest na focusa założyć intervala który będzie sprawdzał wartość pola co np 20ms i usuwanie go na onblur (ale uwierz mi że nie chcesz tego robić i powinieneś się zadowolić podanym wcześniej rozwiązaniem)

0

1 - to mnie zdziwiło. nie wgłębiam się w inne języki, więc nie wiem jak to jest w innych językach, ale logicznie dla mnie brzmiało, że onkeydown odpala się raz (w końcu klawisz wciskam raz), co ciekawsze - działa to tak w Operze. to mój błąd w myśleniu (choć onkeyup i tak jest lepsze niż onkeydown)
2 - a ja jestem za używaniem zestandaryzowanych rozwiązań. nie piszę kodu specjalnie dla FF, Opery, Chroma, Safari, to niech i IE nacieszy się wspólnym kodem. chcesz to używaj - dla mnie to nieeleganckie

0

1 - no jest nieoczywiste, dlatego poprawiłem się na keypress. (kiedyś miałem doczynienia z kodem który wykonywał kod związany w inputami w keyup-ach i to czasami powoduje masę błędów - jeśli kolejność wciakania ma znaczenie to musisz pamiętać że zadziwiająco rzadko kolejność wsiaskania klawiszy jest taka sama jak ich puszczania)
2 - tu się nie zgodzę, na rozwiązaniach które nie są cross-browser nie należy polegać ale można dodawać jako ficzery (zresztą wszelka walidacja w JS tym właśnie jest, prawda?), zresztą zdaje się że prawdopodobieńswo nartafienia na usera z wyłączonym JS jest większe niż na takiego którego przeglądarka nie obsłuży onpaste i oncut.

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