我有一个特殊的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>
这会从带宽输入中获取输入,进行相应计算,然后写入总计输入,前缀为£。
似乎没有对总输入执行计算,这实际上让我感到困惑。
答案 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 +中添加的
也许这会有所帮助:
$(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());
});
});