Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/421.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使Javascript单词计数器在IE中工作_Javascript_Jquery_Word Count - Fatal编程技术网

如何使Javascript单词计数器在IE中工作

如何使Javascript单词计数器在IE中工作,javascript,jquery,word-count,Javascript,Jquery,Word Count,我是JavaScript新手。我使用JavaScript在表单上设置了一个单词计数器。它在所有浏览器中都非常有效,除了-你猜到了-IE。在IE9和IE11中,计数器都不可靠,整个字段都可能“冻结”,不允许你点击并编辑任何内容 为什么它会闯入IE?如果不能用一种简单的方式修复,那么只有在浏览器不是IE的情况下才有条件地使用脚本吗 以下是该表单的演示: 以及守则: $("#field_advstatement").on('keydown', function(e) { var words =

我是JavaScript新手。我使用JavaScript在表单上设置了一个单词计数器。它在所有浏览器中都非常有效,除了-你猜到了-IE。在IE9和IE11中,计数器都不可靠,整个字段都可能“冻结”,不允许你点击并编辑任何内容

为什么它会闯入IE?如果不能用一种简单的方式修复,那么只有在浏览器不是IE的情况下才有条件地使用脚本吗

以下是该表单的演示:

以及守则:

$("#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();
    }
});
$(“#field_advstatement”).on('keydown',函数(e){
var words=$.trim(this.value).length?this.value.match(/\S+//g).length:0;
如果(单词你可以试试这个

<!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>

函数countChar(val){
var len=val.value.length;
如果(len>=50){
val.value=val.value.substring(0,50);
}否则{
$('#charNum')。文本(50-len);
}
};

javascriptsplit方法起作用。 试试最新的提琴


希望有帮助:)

IE控制台上出现了什么错误?您最好创建一个小测试用例,我们可以在上面的链接中复制issuebtw,field Company声明(50个单词)在Chrome中也不起作用。请尝试输入“eeee”。它总是给出总字数:1个字。剩余字数:49为什么“eeeeeeeeee”不能算作一个字?这是jsfiddle谢谢。我太密集了,不知道如何将其应用到我的代码中-它似乎是在计算字符而不是单词,我不确定如何进行倒计时和倒计时。
    $(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);
        }
    });
    });