2012-09-19 107 views
0
工作

我有以下代碼:jQuery的模糊並不在IE8和IE7

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,IE8和IE7中工作?

非常感謝您的幫助。

最好的問候,

LajosÁrpád。

回答

1

JQuery documentation

模糊事件被髮送到時,它失去焦點的元件。本來, 這個事件只適用於表格元素,如<輸入>。在 最近的瀏覽器中,該事件的域名已被擴展爲包含所有元素類型的 。

所以,如果我猜,riTextBox是一類含有輸入一些跨度,這應該工作:

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