0

我有以下代码:

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 修改,可以通过您在代码中看到的选择器找到。我想确保用户永远不会在这些输入中看到逗号。我的代码在 google Chrome、FF 和 IE9 中运行良好,但无法在 IE8 和 IE7 中运行。事实上,在加载我的页面后,我看不到逗号,但是,如果我将它们编辑到项目之外,则会出现逗号。这些问题仅适用于 IE8 和 IE7。如何修复我的代码以在 Chrome、FF、IE9 中工作,

预先感谢您的任何帮助。

最好的祝福,

拉霍斯阿尔帕德。

4

1 回答 1

1

JQuery 文档

blur 事件在失去焦点时发送到元素。原本这个事件只适用于表单元素,比如<input>。在最近的浏览器中,事件的域已扩展为包括所有元素类型。

因此,如果,正如我猜想的那样,riTextBox 是一个包含输入的跨度类,那么这应该可以工作:

    $(".RadGrid td > .RadInput.RadInput_Default > .riTextBox.riEnabled input")
       .blur(function () {
                 $(this).val($(this).val().replace(/,/g, ""));
    });
于 2012-09-19T21:35:50.597 回答