2013-08-01 34 views
0

我有一个在IE9,Chrome和Firefox等做工精细的jQuery的特定部分,但IE8似乎特别喜欢它:jQuery的失败在IE8

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

这需要从带宽输入输入,相应计算然后写入总计输入,前缀为£。

它似乎没有执行总计输入这是真的令我困惑的计算。

+1

什么是给bij IE8的错误? – Martijn

+0

你能告诉错误吗? – Amit

+0

jquery版本? – Virus721

回答

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)); 
}); 
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()); 
    }); 
});