Javascript自动计算不会在FF中运行,在IE和Chrome中运行良好

时间:2013-05-30 18:26:35

标签: javascript asp.net firefox

我在标记中定义了以下asp.net文本框:

<div class="OptionSelect2">
    <asp:TextBox ID="txtCalculateWeightRollSize" CssClass="_100" runat="server"></asp:TextBox>
</div>

在代码隐藏中,在Page_Load上,我绑定了onblur事件:

txtCalculateWeightRollSize.Attributes.Add("onblur", "Javascript:RollBWghtPCutoffNWebsCalcs();")

Javascript(重新格式化为更容易融入问题格式),就是这样:

function RollBWghtPCutoffNWebsCalcs() { ZeroPctLbs(); }
function ZeroPctLbs() {
    //Get the values
    var rollSize = document.getElementById("<% =txtCalculateWeightRollSize.ClientID %>").value.replace("$", "").replace("%", "");
        //Get other controls' values

    //Make them numbers, if necessary
    rollSize = +rollSize;
        //convert other controls

    //Calculate and assign the result
    var result = //math;
    document.getElementById("<% =lblCalculateWeightZeroPercentLbsValue.ClientID %>").innerText = result;
}

这在IE和Chrome中都没有问题。但是,在Firefox中,它失败了。在firebug(我直到今天才使用)中,似乎onblur事件触发,但是当它应该调用RollBWghtPCutoffNWebsCalcs()时,它会进入代码,它会像调用不存在那样传递它。如果我将断点直接放在任何Javascript函数中,它就永远不会被触发。

文本框似乎在HTML中正确呈现:

<input name="ctl00$MainContent$txtCalculateWeightRollSize" type="text" id="MainContent_txtCalculateWeightRollSize" class="_100" onblur="Javascript:RollBWghtPCutoffNWebsCalcs();" />
我认为

Here is a JSFiddle显示了这个问题。 onblur在小提琴中的任何浏览器中都不起作用,但这与我过去对Firefox问题的经验一致。它直接渲染时在Chrome和IE中有效,JSHint表示Javascript有效。

我怀疑我正在做的事情并不完全是标准的,因为Firefox(根据我的理解)几乎是一种基于标准的网络体验。为什么不运行?请。

1 个答案:

答案 0 :(得分:0)

有时这是简单的事情......

FireFox不支持

.innerText。请改用innerHTML。

一旦我停止使用Firebug并切换到FF的内置调试器,我就能够实际跟踪我的代码 - 我想我只是不知道如何使用Firebug。让我失望的奇怪之处在于FF会使用innerText从标签中获取值,并且会以后续函数调用可以读取写入值的方式编写它们,但它不会渲染innerText。

<强> tldr;

使用innerHTML在Javascript中使用标签文本。