基于此问题Fade in/out text based upon value of counter
我有以下标记: -
<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/
使用on
doesent的编辑似乎有所作为,该错误仍然存在。
答案 0 :(得分:3)
根据您的jQuery版本,使用.on()代替.live(),而不是绑定到input
,只需使用keyup
来捕获事件
jQuery('#TextBox1').on('keyup', function() { });
答案 1 :(得分:1)
您可以使用keyup
事件代替通常不支持的input
。您也可以使用on
代替弃用live
:
jQuery(document).on('keyup', '#TextBox1', function() {
...
});
答案 2 :(得分:0)
对于IE8 / 9,使用以下代码替换第一行
jQuery('#TextBox1').on('keyup', function() {