我需要在MaxLength设置为10的文本框中检查文本的长度。如果有人粘贴超过10个字符,则粘贴的文本将被剪裁为10个字符。如何检测粘贴的文本是否超过10个字符并让用户知道您的文字是否已被修剪过'?
另外,如果有人粘贴我设置了一个警告框,它会触发onblur事件,该事件首先发生。我该如何防止这种情况?
<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);
}
的小提琴开头
答案 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); //
}
答案 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");
}
}