2

基于这个问题根据计数器的值淡入/淡出文本

我有以下标记:-

<textarea id="TextBox1"></textarea>
<br/>
<span id="validator" style="display:none"></span>

和以下 jQuery:-

jQuery('#TextBox1').live('input', function() {

    var charLength = $(this).val().length;

    $('#validator').html(charLength + ' of 250 characters used');
    $('#validator').fadeInOrOut(!! charLength);

    if ($(this).val().length > 250) {
        $('#validator').html('<strong>You may only have up to 250 characters !</strong>');
    }

});

jQuery.fn.fadeInOrOut = function(status) {
    return status ? this.fadeIn() : this.fadeOut();
}; 

这一切在 Firefox 中运行良好,但在 IE 中,特别是从 textarea 中删除文本时,.live() 事件似乎没有被触发。

这里有一个演示上述内容的小提琴,如果您在 Firefox 中加载功能正常,请在 IE 中加载并将一些文本添加到 textarea,然后使用退格键删除一些文本。

http://jsfiddle.net/general_exception/CsXU8/

使用doesent编辑on似乎有所作为,错误仍然存​​在。

4

3 回答 3

3

根据您的 jQuery 版本,使用.on()而不是 .live(),而不是绑定到input,仅用于keyup捕获事件

jQuery('#TextBox1').on('keyup', function() { });
于 2012-05-28T08:19:52.390 回答
1

您可以使用keyup事件而input不是通常不支持的事件。您也可以使用on而不是弃用live

jQuery(document).on('keyup', '#TextBox1', function() {
    ...
});

演示:http: //jsfiddle.net/CsXU8/10/

于 2012-05-28T08:22:58.337 回答
0

对于 IE8/9,使用以下代码替换第一行

jQuery('#TextBox1').on('keyup', function() {

于 2012-05-28T08:20:12.537 回答