2016-09-26 19 views
0

このテーマには類似のトピックがいくつかありますが、現在の要件はより具体的であり、既存のソリューションと組み合わせることができませんでした。私は、ルールのテキストエリアJSバリデータを構築する必要があります。残りの文字カウンタがテキストエリアの下に表示されTextareaの制限文字とJavaScriptのある行

  • 最大128文字の

  • 最大32文字の

    • 4行を

    • と私はすでにやり方を見つけました...

    これをどのように実装できるか教えてください。

    p.s.それは明確なJavascriptのソリューション

  • +0

    あなたは出発点はhttpとしてmaterializecssのテキストエリアを見ることができます。 com/forms.html – eavidan

    +0

    @eavidanリンクに感謝しますが、私はそれが明確なjavascriptソリューションであることに注意しなければなりませんでした –

    答えて

    1

    これはあなたのコードは次のようになりますどのようにあるべきである(またJSFiddle参照):// materializecss:

    var rows = 4; 
    var cols = 32; 
    
    var body = document.body; 
    var ta = createElem(body, 'textarea'); 
    var div = createElem(body, 'div'); 
    
    ta.rows = rows; 
    ta.cols = cols; 
    
    ta.addEventListener('keyup',() => { 
        var lines = ta.value.split('\n'); 
    
        lines = lines 
        .slice(0, Math.min(lines.length, rows)) 
        .map(line => line.substring(0, cols)); 
    
        ta.value = lines.join('\n'); 
        displayRemaining(cols * rows - ta.value.length + rows - 1); 
    }); 
    
    displayRemaining(cols * rows); 
    
    function createElem(a, b){ 
        b = document.createElement(b); 
        a.appendChild(b); 
        return b; 
    } 
    
    function displayRemaining(a){ 
        div.innerHTML = 'Characters remaining: ' + a + '.'; 
    } 
    
    +0

    ありがとう、それはほとんどの解決策であり、ちょうど行文字、行と合計の残りを表示するdisplayRemaining関数を更新する必要がありますあなたがすでにした文字。 –

    +0

    @OlegSapishchuk。私はあなた自身でそれをやり遂げることができるといいのです –

    +0

    @ SoftwareEnfineer171確かに:)私はすでに出発点を得て、それを移植し改善する必要がありますが、主なアイデアは私の核心です。ありがとうございました。 –

    関連する問題