使用MaxLength设置查找文本字段中粘贴文本的长度

时间:2014-09-10 08:49:19

标签: javascript

我需要在MaxLength设置为10的文本框中检查文本的长度。如果有人粘贴超过10个字符,则粘贴的文本将被剪裁为10个字符。如何检测粘贴的文本是否超过10个字符并让用户知道您的文字是否已被修剪过'?

另外,如果有人粘贴我设置了一个警告框,它会触发onb​​lur事件,该事件首先发生。我该如何防止这种情况?

<input type="text" id="txt" maxlength="10" onblur="checklength(event);" onpaste="pasted(this)">

function checklength(e)
{
alert('blurry ' + document.getElementById('txt').value.length);
e.cancelBubble=true;
}

function pasted(element) {
setTimeout(function(){
    alert(element.value.length);
}, 0);
}

enter link description here

的小提琴开头

3 个答案:

答案 0 :(得分:2)

在javascript中查看onpaste事件,您可以在分配给onpaste事件的函数中获取剪贴板文本,并相应地处理它。

要在onpaste功能中获取剪贴板文本,您可以使用

window.clipboardData.getData('Text')

如果长度大于255,则意味着它已被修剪,您可以向用户显示您的消息。

也许这个链接也有帮助。

JavaScript get clipboard data on paste event (Cross browser)

答案 1 :(得分:1)

在javascript中使用onpaste event

var myElement = document.getElementById('input');

myElement.onpaste = function (e) {
    if (this.value.length > 255) {
        alert("text trimmed");
    } 
    this.value = this.value.substring(0, 255); //
}

DEMO

答案 2 :(得分:1)

还可以使用与onchange javascript事件绑定的内容

<input type="text" onchange="handleLength(this)"/>

function handleLength(ele){     
            if(ele.value.length>10){
            ele.value= ele.value.substring(0,10);
            alert("your text has been trimmed");        
            }
        }