2012-02-13 20 views
5

Bir metin girişinde, metin varsa ve daha fazlasını eklemek için tıklattığınızda, imleç otomatik olarak atlar. Sadece IE'de olduğu görülüyor.IE: imleç atlamak için giriş atlamak

Şu an bir süredir uğraştım ve bulduğum birçok örnek denedim ama hiçbir şey işe yaramıyor gibi görünüyor. Maalesef, girdim üzerinde kontrole sahip olmayan bir jsp ile yazıldım ve bence bu sorunun tek sebebi de orada kodlanmış bazı javascriptlerin bulunması.

<input type="text" id="simpleSearchString" class="text" onfocus="javascript:this.value=this.value.replace(/^\s+|\s+$/g,'')" onblur="javascript:this.value=this.value.replace(/^\s+|\s+$/g,'')" value="" maxlength="255" name="searchCriteria.simpleSearchString"> 

gerçekten yapmak istediğim bu atlayışı kaldırmaktır.

Aşağıdaki kod yardım ederdim ama hiçbir şey görünmüyordu ekleyerek düşündüm:

jQuery("input#simpleSearchString").focus(); 

Ben 'javascript ile ulaşmak için ne çalışıyorsunuz dev% 100 emin değilim: Bu .. .etc 'ama belki onu kaldırmanın bir yolunu bulabilirim.

+0

regexes alanından gelen/arka boşluk sıyırma vardır (bu şapka yeniden konumlandırmak için gerektirdiğini onun sadece IE kabul). Büyük olasılıkla, IE'nin içeriğin değiştiğini ve eski imleç konumunu geçersiz kıldığından, bu, imlecin atlamasına neden oluyor. –

+0

Girdi öğesinden 'onfocus' ve' onblur' çıkarılmaya ne dersiniz? Bu jQuery ile kolayca yapılabilir. –

+0

Teşekkürler Marc B, Ben sadece bu javascript'in herhangi bir lider/sondaki boşluğun bir aramanın sonuçlarını etkilediğinden ortaya çıktığını öğrendim. Jsp dan görüyorum ki bir şey kullanır Gillian

cevap

2

Bu satır içi olayları öldürebilir ve kendi başınıza takabilirsiniz;

var el = $("#simpleSearchString"); 
el[0].onfocus = el[0].onblur = null; 

$(el).on("focus blur", function(e) { 
    this.value = $.trim(this.value);  
    if ((e.type === "focus") && this.createTextRange) { 
     var r = this.createTextRange(); 
     r.moveStart("character", this.value.length); 
     r.select(); 
    } 
}); 

+0

bir tedavi çalışması yaptı! çok teşekkür ederim. Ne kadar sinir bozucu olduğunu bilmiyorsun. – Gillian

+0

Merhaba, bende aynı problem var ve bu çözümü kullandım; imleci ilk odakta atlamadan kurtarır, ancak kullanıcı giriş içinde tıklarsa yine de başlangıçtan atlayacaktır. Bunun için şansın var mı? – nocarrier

+0

Bu, IE'nin bir şeyi yazdıktan sonra metin kutusunu tekrar tıklattıktan sonra küfür konumunu 0'a çevireceği sorunu çözdü. – Moulde

İlgili konular