Düzenleme : Birisi, DOM için "geçerli" "geçersiz" öznitelikler aradığınızı açıkladı.
Kullanarak her bir etikete öznitelik eklerdim dom_object.setAttribute("isvalid", "true")
. Ayrıca, bu öznitelikleri her seferinde güncelleyen (ve dom_object.getAttribute("isvalid")
her seferinde kullanan ) merkezi bir doğrulama işlevine de sahip olabilirsiniz .
Bu işlevi, bir öğenin odağını her kaybettiğinde veya istediğiniz zaman çalıştırabilirsiniz.
Tam olarak zarif sayılmaz, ancak ne yazık ki artık javascript ve HTML5 için "sözde" destek yok.
Sorunuzu anlarsam, Javascript ile doğrulama yapabilirsiniz. Ancak, istemci tarafı doğrulamasını, özellikle javascript doğrulamasını atlatmanın çok kolay olduğu konusunda uyarılmalıdır . İstemci verilerine asla güvenmemeli ve daima sunucu tarafında kontrol yapmamalısınız.
Örneğin, kaynak kodunu inceleyerek öğe kimliklerini kolayca bulabilirim, ardından document.getElementById('some_id').setAttribute('max', new_number)
maksimum değeri değiştirebilirim (bu, bağlantınızdaki girişlerden biriydi).
Bunu yapmanın çeşitli yolları var, bu yüzden size genel deyimi vermeye çalışacağım.
Yaparak değeri yakalayabilirsiniz document.getElementById('form_element_id').value
( name
sunucuya gönderilen a ve id
javascript tarafından kullanılan bir formu verdiğinizden emin olun ). Metin alanları için kullanabilirsiniz .innerHTML
.
O zaman bir değişkendeki değer var, onu kontrol etmenin çeşitli yolları var.
Örneğin yapabilirsin if (parseInt(my_value) < 0) //error
. Normal ifadeler de kullanabilirsiniz, hepsini açıklamayacağım ama buradan başlayabilirsiniz http://www.w3schools.com/jsref/jsref_obj_regexp.asp . W3schools'un en iyi kaynak olmadığını biliyorum ama başlamak için uygun bir yer buluyorum.
Şimdi doğrulama bölümü için: onsubmit="return validateForm()
form etiketinize ekleyin ; burada validateForm (), tüm denetimi yapan işlevdir. Ve işlev true
, geçerliyse veya false
değilse geri döner . Bu , varsayılan doğrulama işlevini geçersiz kılar (varsayılan olarak hiçbir şey yapmaz).
Yani yukarıdaki örnekte, //error
ile değiştirilecektir return false
. Başka şeyler de yapabilirsiniz; örneğin hatayı uyarır ve ardından yanlış döndürür. Geçersiz alanları vurgulamak için javascript de kullanabilirsiniz (" bir giriş alanını javascript'ten geçersiz / geçerli olarak işaretle " ile kastettiğinizden emin değilsiniz )
Elbette, tüm alanları kontrol etmek istemiyorsanız, yalnızca belirli alanlar geçerse doğru döndürmeniz gerekir. Yine, buna güvenmemelisiniz, ancak sadece ortalama insanları caydırmak istiyorsanız, o zaman bu kolay bir çözümdür.