WebHU - Programozási kérdések és válaszok

Szög - Frissítse a 'beviteli' értéket az "enter" billentyű lenyomásával - És működjön az IE-ben

Szeretném szabályozni a <input> értékek frissítését az "enter" billentyű lenyomására. (Én is frissítek, amikor elhagyják a pályát - de nem ez a problémás rész)

Számos válasz található a használat módjára:

 '<input ng-model-options="{updateOn : 'change blur'}" [...] />

Ami működik Chrome-ban és Firefoxban – De nem az IE-ben (11, az én tesztemben). (Elméletileg - a change eseménynek le kell fednie az Enter billentyű lenyomását).

Kérdésem: Van más eseménysorozat, amelyhez kötődhetek? Készítettem egy Plunker példát a probléma bemutatására/ellenőrzésére.

Nem vagyok biztos abban, hogy az IE egyszerűen nem indítja-e el az change eseményt (az enter lenyomásakor), rossz események vannak, vagy az Angular hibája.

(Megjegyzés: a cikk írásakor ez Angular 1.4.3)


  • A változási eseményt manuálisan is kiválthatja, ha követi a kulcsleállítási eseményt a 13-as kulcskóddal. Ezt egy másik direktívában is megteheti. 24.08.2015
  • Először azt szeretném megnézni, hogy ezt a böngészőesemény megvalósítása (vagy az Angular bug) okozza-e. A régebbi válaszok mutatják az irányelv végrehajtását, de rámutatnak, hogy ez volt a dolgok kezelésének „régi módja” (pl.: stackoverflow.com/questions/25534290/) 24.08.2015
  • {updateOn : 'change blur'} frissíti a modellt a change és blur eseményeken. Az enter gombnyomásnak nincs értelme. Tehát, ha be szeretne küldeni valamit, akkor azt manuálisan kell megtennie a gombnyomások követésével. 24.08.2015

Válaszok:


1

Ezt a viselkedést úgy érheti el, hogy létrehoz egy updateOnEnter direktívát, majd hozzáadja ezt az attribútumot a HTML elemhez. Ez a kód minden nagyobb böngészőben működik.

<input id="search_input" type="text" update-on-enter ng-model="filter.search_terms">

angular.module('app').directive('updateOnEnter', function() {
    return {
        restrict: 'A',
        require: 'ngModel',
        link: function(scope, element, attrs, ctrl) {
            element.bind("keyup", function(ev) {
                if (ev.keyCode == 13) {
                    ctrl.$commitViewValue();
                    scope.$apply(ctrl.$setTouched);
                }
            });
        }
    }
});
05.10.2015
Új anyagok

A rádiógomb ellenőrzött eseményének használata a jQueryben
Ebben a cikkben látni fogjuk, hogyan kell dolgozni a jquery választógombbal ellenőrzött eseményeivel. A választógombok HTML gombok, amelyek segítenek kiválasztani egyetlen értéket egy csoportból...

Körkörös függőségek megoldása terraformban adatforrásokkal – lépésről lépésre
Mi az a körkörös függőségek Dolgozzunk egy egyszerű eseten, amikor az SQS-sor és az S3-vödör közötti körkörös függőség problémája van egy egymástól függő címkeérték miatt. provider..

Miért érdemes elkezdeni a kódolást 2023-ban?
01100011 01101111 01100100 01100101 — beep boop beep boop Világunk folyamatosan fejlődik a technológia körül, és naponta fejlesztenek új technológiákat a valós problémák megoldására. Amint..

🎙 Random Noise #2  – Örökbefogadás és hit
az analitika íratlan világának gondozása Szeretné, hogy ezek a frissítések a postaládájába kerüljenek? Iratkozzon fel itt . "Ha önvezető autókat gyártanak, akkor mi miért ne..

A legrosszabb politika és prediktív modellek májátültetésre jelöltek számára az Egyesült Államokban
A máj (vagy óangolul lifer) az emberi test legnehezebb belső szervére utal, amely csendesen működik a nap 24 órájában. Mit csinál a máj? 500 feladatot hajt végre a szervezet egészségének..

5 webhely, amely 2022-ben fejleszti front-end fejlesztői készségeit
Frontendmentor.io A tényleges projektek létrehozásával a Frontendmentor.io segítséget nyújt a front-end kódolási képességeinek fejlesztésében. A kódolást azután kezdheti meg, hogy..

Mikor kell használni a Type-t az interfészhez képest a TypeScriptben?
A TypeScript a JavaScript gépelt szuperkészlete, amely statikus gépelést ad a nyelvhez. Ez megkönnyíti a robusztus és karbantartható kód írását azáltal, hogy a hibákat a fordítási időben..