jQuery模糊不适用于IE8和IE7

时间:2012-09-19 20:29:18

标签: javascript jquery asp.net internet-explorer telerik

我有以下代码:

jQuery(document).ready(function ($) {
    // ...
    Sys.Application.add_load(function () {
        $(".RadGrid td > .RadInput.RadInput_Default > .riTextBox.riEnabled").each(function () {
            $(this).val($(this).val().replace(/,/g, ""));
        });

        $(".RadGrid td > .RadInput.RadInput_Default > .riTextBox.riEnabled").blur(function () {
            $(this).val($(this).val().replace(/,/g, ""));
        });
    });
}

我编写此代码的原因是我正在使用Telerik RadGrid,它有一些自动生成的列和一个列过滤器,它格式化整数列过滤器值的值。例如,1000000变为1,000,000。它工作正常,但我必须摆脱格式,因为它困扰一些人。基本上我们讨论的HTML元素是输入,它们由telerik修改,可以在代码中看到的选择器中找到。我想确保用户永远不会在这些输入中看到逗号。我的代码适用于谷歌Chrome,FF和IE9,但它无法与IE8和IE7一起使用。事实上,在加载我的页面后,我没有看到逗号,但是,如果我编辑它们的焦点,则会显示逗号。这些问题仅适用于IE8和IE7。如何修复我的代码才能在Chrome,FF,IE9,IE8和IE7中运行?

提前感谢您的帮助。

致以最诚挚的问候,

LajosÁrpád。

1 个答案:

答案 0 :(得分:1)

来自JQuery documentation

  

模糊事件在失去焦点时会发送到元素。本来,   此事件仅适用于表单元素,例如< input>。在   最近的浏览器,该事件的领域已扩展到包括   所有元素类型。

因此,如果我认为riTextBox是包含输入的某个范围的类,那么这应该有效:

    $(".RadGrid td > .RadInput.RadInput_Default > .riTextBox.riEnabled input")
       .blur(function () {
                 $(this).val($(this).val().replace(/,/g, ""));
    });