2016-09-26 54 views
0

这个主题有一些相似的主题,但是当前的要求更加具体,我无法将它与现有的解决方案结合起来,所以请求社区帮助我。我需要建立textarea的JS验证为规则:Textarea使用Javascript限制字符和线条

  • 4行的最大

  • 的128个字符最大

  • 剩余字符计数器textarea的下显示32个字符

  • 等我已经找到了怎么办...

请问我可以如何执行此操作?

p.s.应该明确的JavaScript解决方案

+0

你可以看一下materializecss的多行文本为出发点的http:// materializecss。 com/forms.html – eavidan

+0

@eavidan谢谢你的链接,但我不得不注意,它应该是清楚的JavaScript解决方案 –

回答

1

这是你的代码应该怎么样子(也JSFiddle见):

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。我希望你能自己做。 – 2016-09-26 20:21:33

+0

@ SoftwareEnfineer171肯定:)我已经开始了,将需要移植和改进,但你的主要想法是我的核心。再次感谢你。 –