【问题标题】:jquery countdown characters not working in IE [duplicate]jquery倒计时字符在IE中不起作用[重复]
【发布时间】:2014-12-30 23:22:57
【问题描述】:

这是我的倒计时字符代码。它在 Firefox、Chrome 中运行良好,但在 IE 中无法运行。能不能帮我解决一下,解释一下原因。

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>CountDown Character</title>
    <script src="http://code.jquery.com/jquery-1.11.0.min.js"></script>
</head>
<body>
    <form action="">
        <textarea name="message1" id="message1" cols="30" rows="10" data-limit="10"></textarea>
        <br>
        <span name="remLen1" id="remLen1">10</span>
    </form>
    <SCRIPT LANGUAGE="JavaScript">
        $(document).ready(function(){
            $('#message1').on("keyup keydown",
            function () {
                var limit = $(this).data("limit");
                var remainingChars = limit - $(this).val().length;
                console.log(remainingChars);
                if (remainingChars <= 0) {
                    $('#message1').val($('#message1').val().substring(0,limit));
                }
                $("#remLen1").html(remainingChars<=0?0:remainingChars);
            });
        });
    </script>
</body>
</html>

谢谢。 例如:我正在使用倒计时日文字符和字母字符。

【问题讨论】:

  • &lt;SCRIPT LANGUAGE="JavaScript"&gt; ?请回到现代
  • 谢谢。我会修理它。
  • 我已将其删除,并且运行良好。但现在我有一个问题。当我按下第 11 个字符(日语字符)时,它会用新字符和 coutdown 9 替换旧字符串。
  • 日文字符(和许多其他非ASCII)使用多字节来表示一个字符。见this
  • 我使用 alert() 显示子字符串后的字符串,它返回值 true,但它在 textarea 中显示不正确。它显示新字符。为什么会这样?

标签: javascript jquery


【解决方案1】:

我尝试了您的代码,发现console.log(remainingChars); 导致了问题,因为它给出了错误:控制台未定义。删除此行,您的代码将正常工作。

$(document).ready(function(){
    $('#message1').on("keyup keydown",
    function () {
        var limit = $(this).data("limit");
        var remainingChars = limit - $(this).val().length;
        /*console.log(remainingChars);*/
        if (remainingChars <= 0) {
            $('#message1').val($('#message1').val().substring(0,limit));
        }
        $("#remLen1").html(remainingChars<=0?0:remainingChars);
    });
});

如果您仍想使用console,请参阅this 以获得解决方案。

【讨论】:

  • downvoter 请注意评论。
  • 谢谢。它奏效了。但是当我按下第 11 个字符(使用日文字符)时,它会用新字符和倒计时 9 替换旧字符串。
  • 很高兴为您提供帮助:)
  • 仅尝试 keyup 事件
  • 还是报错。你可以试试按日文字符吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-02-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-10-15
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多