我有以下代码:
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。
答案 0 :(得分:1)
模糊事件在失去焦点时会发送到元素。本来, 此事件仅适用于表单元素,例如< input>。在 最近的浏览器,该事件的领域已扩展到包括 所有元素类型。
因此,如果我认为riTextBox是包含输入的某个范围的类,那么这应该有效:
$(".RadGrid td > .RadInput.RadInput_Default > .riTextBox.riEnabled input")
.blur(function () {
$(this).val($(this).val().replace(/,/g, ""));
});