0

我有一个特定的 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>

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

它似乎没有对输入执行计算,这让我很困惑。

4

2 回答 2

3

演示http://jsbin.com/acigaj/2

您可以使用 keyup 事件,该事件在 IE7+ 中运行良好

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

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

演示: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));
});
于 2013-08-01T11:19:44.517 回答
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());
    });
 }); 
于 2013-08-01T11:31:14.433 回答