2009-02-23 12 views
20

Javascript kullanarak bir kez değiştirdikten sonra giriş kontrolünün kenarlık rengini nasıl sıfırlayacağını bilen var mı? Doğru veya geçersiz verileri içeren alanları vurgulayarak doğrulama için yararlıdır.Giriş kontrolünün kenarlık rengini sıfırla (HTML/Javascript)

E.g. kenarlığın değiştirilmesi:

document.getElementById('myinput').style.border = '1px solid red'; 

Nasıl sıfırlanır? Ben (örn vb siyah veya gri), bazı tarayıcı/işletim sistemlerinde tuhaf görünebilir belirli bir renk geri kenarlık rengi reset eğer bir sonraki satır sadece

document.getElementById('myinput').style.border = ''; 

... tamamen sınır kaldırır o tür 'tema' kontroller ...

teşekkürler yığınları!

cevap

26

Stil özelliklerini ayarlama ile yapmayın. CSS sınıflarını kullanarak yapın. Bunu işlemek için bir Javascript kütüphanesi kullanmanızı da tavsiye ederim. Sadece kodu temizler.

CSS özniteliklerini kaldırmak sorunludur, çünkü her zaman ne için ayarlanmaları gerektiğini bilmezsiniz. Ders ekleme ve çıkarma sadece ... işler.

Öğe başına birden çok sınıfa sahip olabilirsiniz, böylece bu şekilde yapmanıza karşı hiçbir argüman yoktur (imho).

jQuery için kullanıyorum, örneğim bununla ilgili.

Yanlış yol:

$("#myinput").css("border", "1px solid red"); 

Sağ yol:

<style type="text/css"> 
.redborder { border: 1px solid red; } 
</style> 

<script type="text/javascript"> 
$("#myinput").addClass("redborder"); 
$("#myinput").removeClass("redborder"); 
$("#myinput").toggleClass("redborder"); 
</script> 
0

sadece sınırı arabayla gitmek ister misin? Ben öyle düşünmüyorum, böyle bir durum olmadığını belirttiniz.

"Sıfırlamanın" doğru yolu varsayılan olarak ayarlanmasıdır. Ben varsayılanın ne olduğundan emin değilim, ama '1px siyah' veya benzeri bir şey tahmin ediyorum.

Genellikle bu tekniği çeşitli uygulamalarda kullanırım. Varsayılanı bilmediğimde, tekrar edebilmek için kendi "varsayılan" ı ayarlayacağım. Web sayfalarıyla en sevdiğim tekniklerden biri, sınırın değil, kontrolün arka plan rengini belirlemektir. Çok görünür ve daha sessiz bir renk seçebilir ve yine de etkisi olabilir. Bu durumda, arka plan beyaza geri ayarlamak çok kolaydır, bu varsayılan değerdir.

+0

Ben arka plan rengini kullanma konusunda hemfikir. Ben aslında hem kullanıyorum, sadece arka plan temizleme herhangi bir sorun yoktu ... – davidsleeps

+0

Ben açık bir yaklaşım için amaç. Formu bir temizleme yordamında varsayılan olarak ayarladıktan sonra "hata" rengiyle bağladım. Bu hem arka plan rengi hem de diğer görsellerle doğrudur. Varsayılandan emin olduğumda, form karmaşıklığına bağlı olarak clear() rutinini bırakabilirim. –

2

Bu benim için çalışıyor:

document.getElementById('myinput').style.removeProperty('border'); 
İlgili konular