2010-08-09 19 views
104

estoy haciendo uso de trim(), así:IE8 y de jQuery trim()

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

Dónde group_field es un elemento de entrada de tipo texto. Esto funciona en Firefox, pero cuando lo intento en IE8 me da este error:

Message: Object doesn't support this property or method 

Cuando quito el guarnecido(), que funciona bien en IE8. Pensé que la forma en que estoy usando trim() es correcta?

Gracias a todos por la ayuda

Respuesta

201

probar este lugar:

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

Más información:

+1

¡Gracias, pensé que las funciones de JQuery podían encadenarse y así funcionaban todas! – Abs

+0

@Abs: De nada ... – Sarfraz

+38

@Abs: 'val()' no devuelve un objeto jQuery, por lo que el encadenamiento está fuera de la opción. Llamabas al método 'trim()' en una cadena, pero IE no sabe nada de 'String.trim'. – janmoesen

15

Debe utilizar $.trim, li ke this:

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

Por lo que sé, Javascript String no tiene el método trim. Si desea utilizar el ajuste de función, a continuación, utilizar

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

Por favor [no enlace a w3schools] (http://www.w3fools.com/)! –

3

globalmente entrada de compensación con el texto tipo usando 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

Otra opción será la de definir el método directamente en String en caso de que le falta :

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, ''); 
    } 
} 

Entonces trim funcionará independientemente del navegador:

var result = " trim me ".trim();