[英]How to make Javascript Word Counter work in IE
我是JavaScript新手。 我使用JavaScript在表单上设置了字计数器。 它在所有浏览器中都很好用,除了-您猜到了-IE。 在IE9和IE11中,计数器都不可靠,并且整个字段都可能“冻结”,并且不允许您单击它并编辑任何内容。
为什么会在IE中中断? 并且,如果无法通过简单的方式修复该脚本,是否只有在浏览器不是IE的情况下,才可以有条件地使用该脚本?
这是该表格的演示: http : //nzensandbox.wpmakeover.com/
和代码:
$("#field_advstatement").on('keydown', function(e) {
var words = $.trim(this.value).length ? this.value.match(/\S+/g).length : 0;
if (words <= 50) {
$('#display_count2').text(words);
$('#word_left2').text(50-words)
}else{
if (e.which !== 8) e.preventDefault();
}
});
你可以试试这个
<!DOCTYPE html>
<html>
<head>
<script src="http://code.jquery.com/jquery-1.5.js"></script>
<script>
function countChar(val) {
var len = val.value.length;
if (len >= 50) {
val.value = val.value.substring(0, 50);
} else {
$('#charNum').text(50 - len);
}
};
</script>
</head>
<body>
<textarea id="field" onkeyup="countChar(this)"></textarea>
<div id="charNum"></div>
</body>
</html>
javascript split方法可以解决问题。 尝试更新的小提琴, 请单击此处
$(document).ready(function(){
var countMyWords = function(obj){
var $input = $(obj);
var words = $input.val().trim().split(' ');
$('#display_count2').text(words.length);
$('#word_left2').text(50 - words.length);
}
$('#field_advstatement').on({
keyup
: function(event){
if(event.which == 8){
countMyWords(this);
return true;
}
var len = $(this).val().length;
if (len >= 50) {
event.preventDefault();
}
countMyWords(this);
},
keydown: function(event){
if(event.which == 8){
countMyWords(this);
return true;
}
var len = $(this).val().length;
if (len >= 50) {
event.preventDefault();
}
countMyWords(this);
}
});
});
希望能帮助到你 :)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.