Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [JavaScript]Crtl -C w inpucie i jquery
Forum PHP.pl > Forum > Przedszkole
brayan.tr
Witam, mam opracowaną funkcję która nasłuchuje zmian w polu input i odpowiednio przetwarza dane do kolejnego inputa. Wszystko fajnie ale psuje się gdy zrobie Ctrl -C na inpucie 1. Koledzy poratujcie jakimś linkiem do tutoriala lub arta poruszającego ten problem, tudzież jeśli ktoś znajdzie czas to może by cos zasugerował tongue.gif
kamil4u
Ja bym to zrobił tak(chyb, że jest na to jakiś gotowy kod( w sensie od twórców JS), ale wątpię ) :
1. W JS można sprawdzić czy ctrl został wciśnięty, jeżeli tak i na dodatek z przyciskiem c to znak, że należy spodziewać się tekstu
2. Jeżeli 1. nie zadziała to, po przez zdarzenie onkey(down|up) sprawdzaj wpisanych ilość znaków + ilość znaków w input-cie - length. Z tym jest trochę bawienia się, ale jest to do zrobienia.

Generalnie zacznij szukać w google sposobu z ctrl+c pod kątem 1. pomysłu. 2 jest szalony ;P
brayan.tr
Tak też zrobiłem alle chyba słabo szukam tongue.gif W sumie to zależało mi na skorzystaniu z jquery przy tym problemie
kamil4u
http://www.google.com/search?&q=js+ctr...-8&oe=utf-8 -> http://stackoverflow.com/questions/2903991...sing-javascript

Cytat
Limitations of this method:
Opera doesn't allow disabling right click events
Drag and drop between browser windows can't be prevented as far as I know.
The edit->copy menu item in e.g. Firefox can still allow copy/pasting.
There's also no guarantee that for people with different keyboard layouts/locales that copy/paste/cut are the same key codes (though layouts often just follow the same standard as English), but blanket "disable all control keys" mean that select all etc will also be disabled so I think that's a compromise which needs to be made.


To moim zdaniem, nie jest aż takie ważne smile.gif
zegarek84
Cytat(manual jQuery)
Event Properties

The following properties are guaranteed to be members of the event object, though some of their values may be undefined, depending on the event:

altKey, attrChange, attrName, bubbles, button, cancelable, charCode, clientX, clientY, ctrlKey, currentTarget, data, detail, eventPhase, fromElement, handler, keyCode, layerX, layerY, metaKey, newValue, offsetX, offsetY, originalTarget, pageX, pageY, prevValue, relatedNode, relatedTarget, screenX, screenY, shiftKey, srcElement, target, toElement, view, wheelDelta, which

tylko to są właściwości przed normalizacją, nie pamiętam czy w evencie w każdej przeglądarce jest zdefiniowana właściwość .ctrlKey

Ale jeśli jest wymagana jakaś kolejność lub kombinacja wciśniętych klawiszy to wystarczy przechwycić przy wciskaniu danego klawisza do zmiennej - czyli nasłuch na wciskanie - każdą ze zmiennych danego klawisza resetować przy podnoszeniu - czyli nasłuch na podnoszenie klawiszy...

nasłuch na klawisze możesz wykonać albo na polach typu input/textarea albo dopiero na całym obiekcie document

wklejanie możesz wykryć na 2 sposoby
1. Wciśnięte klawisze co tu podane wyżej
2. podpięcie zdarzeń w zależności od przeglądarki (to sobie nazwy doszukaj gdyż nie jestem pewien) beforePaste, onPaste, paste

jeśli zamierzałbyś stosować obie te metody to należy gdzieś zrobić małą blokadę by funkcja nie wykonywała się wiele razy...

co do drugiej metody to tekst masz wklejony dopiero po chwili - więc funkcję musisz odpalić z timoutem

wklejany tekst możesz spokojnie przechwycić, musisz tylko przy wykryciu zdarzenia wklejania przekierować na inny aktywny element

jeszcze co przeglądarka trochę inaczej wyglądają zdarzenia onkeydown i onkeypress (ale to tylko delikatne niuanse)

swoją drogą z dzisiejszą wiedzą trochu inaczej bym napisał te rozwinięcia do edytora na manifo.pl ;p gdzie w edytorze wysiwgn jest też przechwytywany kod html wklejany z innych stron...
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.