模糊事件在FireFox中不起作用

时间:2015-03-19 03:36:49

标签: javascript jquery

我有一个asp.net mvc页面。我有一个文本框,当输入一个值,然后开箱即可执行一个javascript函数,它将对文本框中的值进行四舍五入。这适用于Chrome和IE,但不适用于FireFox。

以下是代码。 setAmount()是应该执行的javascript函数。

<div class="amount-other-input">
    <div class="bold-label" style="margin-right:5px;">£</div>
    <input id="amountOther" type="number" name="other" onblur="setAmount(this)" class="numbersOnly" maxlength="4">
</div>

我尝试在另一个stackoverflow回答中建议添加一个计时器,如下所示,但是没有用:

document.getElementById('amountOther').addEventListener("blur", function() {
        var element = this;
        setTimeout(function() {
            setAmount(element);
        }, 1);
    }, true);

4 个答案:

答案 0 :(得分:2)

最后我解决了以下问题:

  1. 添加onchange事件
  2. 调用方法以关注onchange

    function setFocus(sender){     $(发送者).focus(); };

答案 1 :(得分:0)

正如@Hobo Sapiens所提到的,不要在html和事件监听器上添加blur事件。只需直接在html的onblur事件上调用该函数即可。

这是一个小提琴:http://jsfiddle.net/pyjtL456/2/

另外,你在检查这个版本的firefox是什么版本?

答案 2 :(得分:0)

看完问题后。我建议你采用这种方法。 以下是HTML代码段:

<div class="amount-other-input">
    <div class="bold-label" style="margin-right:5px;">£</div>
    <input id="amountOther" type="number" name="other" onblur="setAmount(this)" class="numbersOnly" maxlength="4" />
    <input id="amountOther2" type="number" name="other" class="numbersOnly" maxlength="4" />
</div>

Javascript Snippet:
<script>

    //When using the onblur property with setAmount as the value
    function setAmount(element) {
        console.log(element.value);
    }

    //When adding the blur event dynamically    
    var amountElement = document.getElementById('amountOther2');
    amountElement.addEventListener('blur', function(){
            setTimeout(setAmount(this), 1);
    });
</script>

答案 3 :(得分:0)

    £               //使用带有setAmount的onblur属性作为值     function setAmount(element){         的console.log(element.value);     }     //动态添加模糊事件时     var amountElement = document.getElementById('amountOther2');     amountElement.addEventListener('blur',function(){             setTimeout(setAmount(this),1);     });