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

Karakterek számolása a contentEditable DIV-ben

Ezt a beépülő modult használom a karakterek számlálására a bemeneteken és a szövegterületeken: http://cssglobe.com/post/7161/jquery-plugin-simplest-twitterlike-dynamic-character-count-for-textareas

A karaktereket egy DIV-ben is meg kell számolnom, ha a "contentEditable" beállítás True-ra van állítva.

Lehetséges ez a plugin módosítása?

Szerintem ezen a sorban változtatnom kell valamit:

            var count = $(obj).val().length;

De tényleg nem tudom, hogyan működik a contentEditable... Valami ötlet?

Kösz!

Szerkesztés:

A brettz9 javaslata szerint csinálom:

var method = $.inArray(obj.nodeName.toLowerCase(), ['textarea', 'input']) !== -1 ? 'val' : 'text';
var count = $(obj)[method]().length;

Csak egy kis problémám van ezzel a másik mezővel kapcsolatban, amihez nem kellett minimum/max hossz (van egy bemenetem és egy szerkeszthető tartalom)

Ez a feltételes rész:

                if (other_required){
                if ($(other_required).val().length > 0 && available >= 0){
                    $(submit_button).attr("disabled", "");
                } else {
                    $(submit_button).attr("disabled", "disabled");
                }

nem tudom, hogyan deklaráljam ezt a [method] var-t, és hogyan használjam az "other_required" paraméterrel


  • A [method] lehetővé teszi, hogy a metódus karakterláncát (val vagy text) használják a metódus dinamikus neveként, attól függően, hogy az elem textarea (vagy bemenet) vagy sem. Így egyenértékű a $(obj).text() vagy $(obj).val() értékkel, a nodeName-től (az elem típusától) függően. A fentiekhez cserélheti a .val()-t a [method]()-ra, majd a fenti sorban állítsa be a metódust val-ra vagy szövegre, ahogy én tettem. Legalábbis megértem, hogy ezt szeretnéd csinálni. 15.05.2011

Válaszok:


1

Ezt így teheti meg:

// We'll assume it is contenteditable (which uses text, or could also use html (innerHTML) if you wanted to count markup length) 
//  if it is not a textarea or input (which uses value)
var method = $.inArray(obj.nodeName.toLowerCase(), ['textarea', 'input']) !== -1 ? 'val' : 'text';
var count = $(obj)[method]().length;
15.05.2011
  • Köszi brettz, ez tökéletesen működik... Csak egy problémám van a bővítmény egy módosításával, amely több bemenetet igényel, min/max hosszban... Ez valami olyasmi, mint if (other_required){ if ($(other_required). val().length › 0 && elérhető ›= 0){ $(submit_button).attr(disabled, ); } } Nem tudom, hogyan hívjam meg a [method] var-t az adott példányhoz és az other_required objektumhoz (mert van 1 bemenetem és 1 contentEditable) 15.05.2011

  • 2

    A val() a bemeneti értékek, például textarea, textbox stb. lekérésére szolgál. Próbálkozzon inkább a text() használatával.

    EDIT:

    Próbáld ezt:

    function count(obj) {
      var method = $.inArray(obj.nodeName.toLowerCase(), 
        ['textarea', 'input']) !== -1 ? 'val' : 'text';
      return $(obj)[method]().length;
    }
    

    És a kódod így nézne ki:

    if (other_required){
    if (count(other_required) > 0 && available >= 0){
        $(submit_button).attr("disabled", "");
    } else {
        $(submit_button).attr("disabled", "disabled");
    }
    
    15.05.2011
    Ú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..