jQuery在IE8中失败了

时间:2013-08-01 11:11:54

标签: javascript jquery

我有一个特殊的jQuery在IE9,Chrome和Firefox等方面运行良好,但IE8似乎特别不喜欢它:

<script type="text/javascript">
    $("#bandwidth").ForceNumericOnly();    
    $("#bandwidth").on("input", function() {
        var total = this.value*0.18;
        $('#total').val('£'+ total.toFixed(2));
    });
</script>

这会从带宽输入中获取输入,进行相应计算,然后写入总计输入,前缀为£。

似乎没有对输入执行计算,这实际上让我感到困惑。

2 个答案:

答案 0 :(得分:3)

DEMO http://jsbin.com/acigaj/2

您可以使用keyup事件此事件在IE7 +

中正常工作
$("#bandwidth").on("keyup", function() {
  var total = this.value*0.18;
  $('#total').val('£'+ total.toFixed(2));
});

编辑:如果要将输入字段仅限制为数字?然后你可以做这样的事情。

DEMO:http://jsbin.com/acigaj/5/edit

$("#bandwidth").on("keyup", function() {
  this.value = this.value.replace(/[^0-9]/,'');
  var total = this.value*0.18;
  $('#total').val('£'+ total.toFixed(2));
});

答案 1 :(得分:0)

对于IE8,你可能希望有一个keyup keydown事件或propertychange事件的组合...像输入事件这样的行为并且是从IE6 +中添加的

也许这会有所帮助:

http://jsbin.com/okusov/2

$(function(){
    $('#helloMama').on('propertychange', function(e){
      var $this = $(this);
      $('#output').text("cought by IE6+ :"+$this.val());
    });
    $('#helloMama').on('input', function(e){
      var $this = $(this);
      $('#output').text("cought by smarties: "+$this.val());
    });
 });