2012-12-07 15 views
9

Internet Explorer 10'da bazı garip davranışları merak ediyordum. Sayfamda, yer tutucu özelliği de dahil olmak üzere jquery ile bir textarea ekliyorum. Böyle bir şey:HTML5 Yerleşim Özniteliği, IE10'da jQuery aracılığıyla Textarea'da

$('body').append($('<textarea placeholder="Placeholder..."></textarea>')); 

tutucu özelliği, bu durum dışında ... genellikle IE10 tamamen normal çalışır. - En sinir bozucu davranış ı Gördüğünüz gibi

http://jsfiddle.net/Aqnt5/1/

, bir textarea (bir dinamik olarak eklenen) tutucu gerçek değer gibi öznitelik muamelede bulunur: Ben elemanları bu keman sayfa zaten varlık ile test hayal edebiliyordu ...

Bu efekti ve belki de bir geçici çözümü bilen var mı? Şimdiden teşekkürler!

DÜZENLEME

Ben de sadece beklendiği gibi elle değerini kaldırdıktan sonra o işe yaradığını fark etti. Çalıştırmak için jQuery.val('') aracılığıyla da kaldırabilirsiniz. Bu davranışla gerçekten kafam karıştı ... Ama bu uygun bir 'geçici çözüm' olmalı. Beni yaklaşık başlayalım HTML5 beri hala tanımlı değil, http://jsfiddle.net/Aqnt5/5/

+1

Hemen buraya benzer bir soru gönderdim: http://stackoverflow.com/questions/23375208/ie11-jquery-1-8-3-dynamically-added-textarea-with-placeholder-has-text-set Yapılır/23375209 # 23375209. JQuery ** sürümünü **> 1.8.3 ** sürümüne güncellerseniz sorun kaybolur. – Oliver

cevap

18

Ne yazık ki bu konuda test etmek IE10 yok ama bu başka her yerde çalışır;

-

$('body').append('<textarea></textarea>'); 
$('textarea').attr('placeholder', 'placeholder'); 

Ve sadece DOCTYPE İşte

HTML5

için doğru olduğunu bir kez daha kontrol de yapabilirsiniz (daha görünür hale getirmek için buraya birkaç satır içine kırık) tek astar olduğunu
$('body') 
    .append('<textarea></textarea>') 
    .find('textarea') 
    .attr('placeholder', 'placeholder'); 
+2

Teşekkürler Jay! Sonrasında yer tutucuyu ayarlama şekliniz IE10'da gayet iyi çalışıyor. Ayrıca, jQuery ile değeri kaldırarak başka bir geçici çözüm buldum (cevabıma bakın). –

-1

placeholder HTML5 ayrılmış bir niteliktir (ve değişikliklerin kendisine neler olabileceğini), Ardından tüm tarayıcılar tüm fonksiyonları desteklemez (ve Yüklü: bu keman bakın IE) referans için

: http://www.w3schools.com/html5/att_textarea_placeholder.asp

+1

teşekkürler Dementic.IE ile uyumsuzluğu biliyorum - hala, çoğu zaman IE10 için yer tutucu özelliği çalışır. Sadece jQuery ile eklediğimde, doğru şekilde ele alınmıyor. Gerçekten ne fark yarattığını merak ediyordum ... –

+0

IE, bazı "kısayollar" yapmaya çalıştığınızda çok fazla hataya sahip olma eğilimindedir. Bu benim kişisel deneyimimden. – Dementic

3

Fiddle: jQuery'ye ile değerini kaldırabilirsiniz

http://jsfiddle.net/Aqnt5/5/, doğru davranmaya yapmak:

012 Onlar ilk etapta bir değer olarak yer tutucu koymak nedenini bilmiyorum
$('body').append($('<textarea placeholder="Placeholder..."></textarea>').val('')); 

...

+0

Bu önerilmez. çalışmasına rağmen, @Jay Blanchard cevabı bunu yapmanın doğru yolu. – Dementic

0

Ben jQuery 1.8.3 kullanırken aynı şey ne gördüm: http://jsfiddle.net/wE577/1/.

Ancak bundan daha yüksek bir sürüm kullanırsanız, sorun ortadan kalkar: http://jsfiddle.net/wE577/2/.

jQuery'nin bu hataya neden yol açtığı konusunda hiçbir fikrim yok, ancak güncelleştirme bunu düzeltiyor.

İlgili konular