SORU
17 EYLÜL 2013, Salı


Ham değer <ınput type="numara" bir Nasıl;> alan?

Nasıl alabilirim< . em^"" . gerçek <input type="number"> alan değeri?


input bir kutu var, ve daha yeni HTML5 giriş tipi number kullanıyorum:

<input id="edQuantity" type="number">

Bu çoğunlukla Krom 29 desteklenir:

enter image description here

Ben şimdi ne gerek okuma yeteneği< . em^"" . ham değeri, kullanıcının giriş kutusuna girdi. Eğer kullanıcı bir sayı girerse:

enter image description here

edQuantity.value = 4 ve her şey yolunda.

Ama eğer kullanıcı geçersiz metin girerse, renk giriş-box kırmızı: istiyorum

enter image description here

Eğer metin kutusunda değer bir sayı değil ne yazık ki, type="number" giriş kutusu için value boş bir dize döndürür:

edQuantity.value = "" (String);

(Chrome 29 en az)

Nasıl alabilirim< . em^"" . ham <input type="number"> Bir kontrol değeri?

diğer özellikler Krom listesine bakarak giriş kutusunun çalıştım:

enter image description here

gerçek giriş benzer bir şey göremedim.

Ben de kutusunu olmadığını söylemek için bir yol bulmak< . em ^"boş"ya da değil. Belki olayla ilgisi olabilir:

value          isEmpty        Conclusion
=============  =============  ================
"4"            false          valid number
""             true           empty box; not a problem
""             false          invalid text; color it red

Not: Yatay çizgi sonra her şeyi göz ardı edebilirsiniz; sadece dolgu soru haklı. Ayrıca: şaşırtmak soru örneği yok. İnsanlar nedenlerle bu sorunun cevabını isteyebilirsinizdiğerdaha kutusu kırmızı (örnek: metin Latince'ye "four" onBlur olay sırasında "4" sembol) dönüştürme boyama

Nasıl alabilirim< . em^"" . ham <input type="number"> bir kontrol değeri?

Bonus Okuma

CEVAP
17 EYLÜL 2013, Salı


WHATWG göre geçerli bir sayısal giriş olmadığı sürece değeri elde etmek mümkün değil. Giriş numarası alan temizleme algoritması tarayıcı eğer giriş geçerli bir kayan nokta sayı değil ama boş bir dize değerini ayarlamak gerekiyor diyor.

value Eğer value sanitization algorithm aşağıdaki gibidir: elemanı valid floating-point number, sonra boşaltmak için ayarlanmış bir değil dize yerine.

Türü (<input type="number">) belirterek tarayıcısı için bazı işler yapmak istiyorsunuz. Eğer, diğer taraftan, hoşuna gider yakalamak mümkün olmayan bir sayısal giriş ve bir şey ile, daha iyi mi olurdu güvenmek eski denenmiş ve gerçek metin giriş alanı ve ayrıştırma içerik kendini.

W3 de aynı işlevi görür ve ekler:

Kullanıcı arayüzleri kullanıcı boş olmayan bir değer ayarlamak için izin vermemeliyiz dize kayan nokta geçerli bir sayı değil.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Capcom Unity

    Capcom Unity

    5 NİSAN 2010
  • Evan Coury

    Evan Coury

    29 NİSAN 2007
  • The Verge

    The Verge

    8 AĞUSTOS 2006