2012-05-25 17 views
33

html5 form alanında hata mesajının dilini değiştirmeye çalışıyorum.html5 iletişim formundaki gerekli alanda hata mesajının dilini değiştirme

Bu kodu vardır: hatta alan boş değil, üzerinde

<input type="text" name="company_name" oninvalid="setCustomValidity('Lütfen işaretli yerleri doldurunuz')" required /> 

ama göndermek, hala hata mesajı alabilirsiniz.

Ben <input type="text" name="company_name" setCustomValidity('Lütfen işaretli yerleri doldurunuz') required />

ile çalıştı ama sonra ingilizce mesaj görüntülenir. Hata mesajını başka bir dilde nasıl görüntüleyebilirim?

+0

"setCustomValidity" işlevini gösterebilir misiniz? – antyrat

+0

İşlevde yerleşik olduğunu düşündüm ??? Değil mi? – Zoran

cevap

49

setCustomValidity 'ın amacı değil

Selamlar, Zoran sadece doğrulama mesajı ayarlamak kendisini işaretleri alan geçersiz olarak için. Doğal olarak desteklenmeyen özel doğrulama kontrolleri yazmanıza olanak tanır.

Özel bir mesaj ayarlamanın iki yolu vardır; Javascript içermeyen ve bunu kolaylaştıran bir kolay yol.

En kolay yol, giriş öğesindeki title özniteliğini kullanmaktır - içeriği standart tarayıcı iletisiyle birlikte görüntülenir.

enter image description here

Yalnızca özel mesaj görüntülenecek istiyorsanız

<input type="text" required title="Lütfen işaretli yerleri doldurunuz" /> 

, Javascript biraz gereklidir. this fiddle'da sizin için iki örnek verdim.

+0

javacript çözümü ile gideceğim. Tüm boş alanları kontrol etmek için herhangi bir kolay yolu? Benim durumumda tüm alanlar gereklidir ve form oldukça uzundur .. javascript yeniden yazılabilir, bu yüzden tüm alanları kontrol edecek? ya da teker teker olmalı? – Zoran

+0

başlıklı kod, sadece bazı tarayıcılarda sanırım özel css ile çalışır. Bunu ekledim ve türk mesajı göremiyorum – Zoran

+0

Tüm girişleri, tekstratları ve alanları seçmesi gereken bir [güncellenmiş sürüm] (http://jsfiddle.net/zpkKv/3/) ekledim. Hangi tarayıcıda test yapıyorsunuz? HTML5 form doğrulama, kartın genelinde desteklenmez. – janfoeh

9

HTML:

<form id="myform"> 
    <input id="email" oninvalid="InvalidMsg(this);" name="email" oninput="InvalidMsg(this);" type="email" required="required" /> 
    <input type="submit" /> 
</form> 

JAVASCRIPT:

function InvalidMsg(textbox) { 
    if (textbox.value == '') { 
     textbox.setCustomValidity('Lütfen işaretli yerleri doldurunuz'); 
    } 
    else if (textbox.validity.typeMismatch){{ 
     textbox.setCustomValidity('please enter a valid email address'); 
    } 
    else { 
     textbox.setCustomValidity(''); 
    } 
    return true; 
} 

Demo:

http://jsfiddle.net/patelriki13/Sqq8e/4

20

senin bu işte tek kodunu değiştirmek, oninvalid içinde this unutmak:

oninvalid="this.setCustomValidity('Lütfen işaretli yerleri doldurunuz')" 

enter image description here

<form><input type="text" name="company_name" oninvalid="this.setCustomValidity('Lütfen işaretli yerleri doldurunuz')" required /><input type="submit"> 
 
</form>

+1

teşekkürler harika yaptı –

+0

Ne yazık ki bu benim için çalışmadı. Boş bir alanla göndermeye çalıştıktan sonra mesaj ortaya çıktı, ancak alanı doldurmuş olsam bile her zaman ortaya çıktı. –

+0

"Ne yazık ki bu işe yaramadı ..." etiketi üzerinde gerekli unutmayın! –

5

Bu eski bir yazı olduğunu biliyorum ama benim deneyim paylaşmak istiyorum.

HTML:

JavaScript (jQuery):

$('input[required]').on('invalid', function() { 
    this.setCustomValidity($(this).data("required-message")); 
}); 

Bu çok basit bir örnektir. Umarım bu herkes için yardımcı olabilir. Bu size hızlı, hatta daha iyi yardımcı olabilir

-1
<input type="text" id="inputName" placeholder="Enter name" required oninvalid="this.setCustomValidity('Please Enter your first name')" > 

, & kolay uygun.

İlgili konular