2013-04-10 34 views
7

Normalde tarayıcının, kullanıcı girdiğinde kendi başına otomatik düzeltme/büyük harf kullanımı vb. Ama ben contenteditable özniteliğini kullanıyorum ve kullanıcı girdiğinde evt.preventDefault() kullanmamı gerektiren "enter" ile ilgili bazı özel işlemler yapıyorum. Dinleyicimde preventDefault() kullandığım için, mobil safari otomatik düzeltme balonunu açık bırakıyor ve oldukça korkak görünümlü/kullanışsız hale geliyor. Kabarcayı kapatmak veya preventDefault'u çıkarmak zorunda kalmadan normal davranışı tetiklemek için alternatif bir yol var mı?Kullanıcı bastığında mobil Safari'de (iOS'ta) otomatik düzeltme/otomatik tamamlamayı tetiklemenin alternatif bir yolu var mı?

Uygulamam için önemli olduğundan, otomatik düzeltme işlevlerinden kurtulmak istemiyorum.

+0

Daha genel olarak, iOS, ekranda bir giriş değeri için önerilen bir otomatik düzeltme görüntülediğinde, javascript'te kullanılmak üzere otomatik düzeltme yapıldıktan sonra değeri elde etmenin bir yolu var mıdır? – rakslice

+0

İçeriden okunabilir div'unuzda 'onfocus'' onblur' vb. –

cevap

0

Örnek kod olmalıdır! Ama böyle bir şey söz düşünüyorum:

$("#myForm").submit(function(event) { 
    event.preventDefault(); 
    // Do other stuff 
}); 

Bu yüzden kovabilirsin eminim .blur o otomatik tamamlama-fonksiyonu ateş hangi elle -Olay:

$("#myForm #myInput").blur(); 

Bu cevap ise yanlış, lütfen örnek kodu sağlayın - Stackoverflow'ta herkes bir sihirbaz değildir.

+0

Orijinal posterin kodunun neye benzediğini bilmiyorum, ancak 'event.preventDefault' çağrısı olan bir' keypress' işleyicisine sahip olursam, 'event.preventDefault' ifadesinden önce' blur' ekleme eklenir. bana düzeltilmiş metin: http://jsfiddle.net/LGWrJ/ – rakslice

0

Ben odak seti, oto davranışı doğru otomatik devam edecektir göndermek ile çalışır önceki cevabı aksine ile kolay diyecekler ..

$("#MyInput").focus(function(event){ 
    event.preventDefault(); 
}); 
$("#MyInput").blur(){ // do events you want on focus lost.. from input.. :) 
}); 

ben .. bunu düşünüyorum