2010-06-22 32 views
17

değerini, number Alma: Opera'daYeni HTML5 girdi türlerinden biri kullanıyorum HTML5 numarası girişi

<input type="number" /> 

, Şu anda bunu tanır bunun bildiğimiz tek bir masaüstü tarayıcısı olan gibi bu işler:

enter image description here

karşılaştığım sorun doğrulama biridir. Bir kullanıcı alana bir şey yazıyorsa, örneğin: "abc", myInput.value tarafından döndürülen değer boş bir dizedir. Bu, kullanıcının alanı boş bırakıp bırakmadığını veya bazı yanlış veriler girip girmediğini belirtmeyi imkansız hale getirir. Alanın gerçek değerini elde etmenin bir yolu var mı?

cevap

13

HTML5 taslak tanımlar şu şekildedir:

değer sanitization algoritmasıdır: elemanının değeri geçerli bir kayan nokta sayısı değilse, o zaman bunun yerine boş bir dizeye ayarlayın. ayırt etmek belirgin bir yol olarak görünüyor beri

Reference1

Seni alanı geçersiz şey girilip girilmediğini dokunulmadan veya bırakıldı kullanacağım emin olmak için "0" varsayılan değeri zorunda kalırdım iki.

<input id="email" type="email" value="blah"> 
document.getElementById("email").validity.typeMismatch // True 

<input type="number"> çalışmıyor mu:

doğrulama özelliklerini ve (Opera 10.54 olarak) bazı testler kadar okuduktan sonra ben sonucuna varmıştır. Olması gerekip gerekmediği ya da devam eden bir çalışma olup olmadığından emin değil. Ancak, mülk var ancak her zaman False döndürür.

Read more2

Ayrıca, özel doğrulama yöntemini Reference3

+2

Ah topları ayarlayabilirsiniz. Boş alanı terk etmek benim amaçlarım için geçerli bir durum olmalıdır (ve 0'ı girmek farklıdır). Yine de teşekkürler. – nickf

+0

Bu özellik, "Bir hatayla sonuçlanacak kayan nokta sayısı değerlerini ayrıştırmak için kurallar uygulanıyorsa, bir hata döndürür, aksi halde sonuç numarasını döndürür." Bu hatayı yakalamanın bir yolu olacağını düşünüyor musun? – nickf

+0

Güncellenmiş yanıtlara bakın. – Daniel