IE8 ve JQuery'nin kırpılması ()


103

Trim () 'i şu şekilde kullanıyorum:

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

group_fieldMetin türünde bir giriş öğesi nerede . Bu Firefox'ta çalışıyor ancak IE8'de denediğimde bana şu hatayı veriyor:

Message: Object doesn't support this property or method

Döşemeyi () kaldırdığımda, IE8'de iyi çalışıyor. Trim () kullanma şeklimin doğru olduğunu düşündüm.

Her türlü yardım için teşekkürler

Yanıtlar:


199

Bunun yerine şunu deneyin:

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

Daha fazla bilgi:


1
Teşekkürler, JQuery'nin işlevlerinin zincirleme yapabileceğini düşündüm ve hepsi böyle çalıştı!
Abs

38
@Abs: val()jQuery nesnesi döndürmez, bu nedenle zincirleme seçeneğin dışındadır . trim()Yöntemi bir dizede çağırıyordunuz , ancak IE bunu bilmiyor String.trim.
janmoesen

FWIW, OP'nin sözdizimini kullandıkları için birinin Kod İncelemesinde başarısız oldum. Belli ki MSIE'nin herhangi bir sürümünde test etmediler.
Adrian J. Moreno

3
Bir yan not olarak, MSIE8'i test ediyorsanız, Array.indexOf () hakkında bilgi sahibi değildir. Bunun yerine jQuery.inArray () kullanın.
Stone


10

Diğer bir seçenek de, Stringeksik olması durumunda yöntemi doğrudan tanımlamak olacaktır :

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

Ardından trimtarayıcıdan bağımsız olarak çalışacaktır:

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

10

Bildiğim kadarıyla, Javascript String yöntem trimine sahip değil. Fonksiyon trimini kullanmak istiyorsanız, o zaman kullanın

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

3

JQuery kullanarak girişi metin yazarak genel olarak kırpmak için:

/**
 * 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()));
});
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.