2010-08-09 36 views
104

Tôi đang tận dụng trim() như sau:IE8 và JQuery trim()

if($('#group_field').val().trim()!=''){ 

đâu group_field là một yếu tố đầu vào của loại văn bản. Điều này làm việc trong Firefox nhưng khi tôi thử nó trên IE8 nó mang lại cho tôi lỗi này:

Message: Object doesn't support this property or method 

Khi tôi loại bỏ trim(), nó hoạt động tốt trên IE8. Tôi nghĩ cách tôi đang sử dụng trim() là chính xác?

Cảm ơn tất cả sự giúp đỡ nào

Trả lời

201

Hãy thử điều này thay vì:

if($.trim($('#group_field').val()) != ''){ 

More Info:

+1

Cảm ơn, tôi nghĩ rằng các chức năng của JQuery là chuỗi có thể thực hiện được và đó là cách chúng hoạt động! – Abs

+0

@Abs: Bạn được chào đón ... – Sarfraz

+38

@Abs: 'val()' không trả về một đối tượng jQuery, vì vậy chuỗi không nằm trong tùy chọn. Bạn đã gọi phương thức 'trim()' trên một chuỗi, nhưng IE không biết về 'String.trim'. – janmoesen

15

Bạn nên sử dụng $.trim, li ke this:

if($.trim($('#group_field').val()) !='') { 
    // ... 
} 
11

Theo như tôi biết, Chuỗi Javascript không có phương pháp cắt. Nếu bạn muốn sử dụng chức năng cắt, sau đó sử dụng

<script> 
    $.trim(string); 
</script> 
+1

Vui lòng [đừng liên kết tới w3schools] (http://www.w3fools.com/)! –

3

Để trên toàn cầu đầu vào cắt với loại văn bản sử dụng jQuery:

/** 
* Trim the site input[type=text] fields globally by removing any whitespace from the 
* beginning and end of a string on input .blur() 
*/ 
$('input[type=text]').blur(function(){ 
    $(this).val($.trim($(this).val())); 
}); 
10

Một lựa chọn khác sẽ được để xác định phương pháp trực tiếp trên String trong trường hợp nó còn thiếu :

if(typeof String.prototype.trim !== 'function') { 
    String.prototype.trim = function() { 
    //Your implementation here. Might be worth looking at perf comparison at 
    //http://blog.stevenlevithan.com/archives/faster-trim-javascript 
    // 
    //The most common one is perhaps this: 
    return this.replace(/^\s+|\s+$/g, ''); 
    } 
} 

Sau đó trim sẽ làm việc không phụ thuộc vào trình duyệt:

var result = " trim me ".trim(); 
Các vấn đề liên quan