Bir kullanıcının <select>
HTML5'teki bir alandan bir şey seçip seçmediğini nasıl kontrol edebilirim ?
Görüyorum <select>
ki yeni required
özelliği desteklemiyor ... O zaman JavaScript kullanmak zorunda mıyım? Yoksa özlediğim bir şey var mı? : /
Bir kullanıcının <select>
HTML5'teki bir alandan bir şey seçip seçmediğini nasıl kontrol edebilirim ?
Görüyorum <select>
ki yeni required
özelliği desteklemiyor ... O zaman JavaScript kullanmak zorunda mıyım? Yoksa özlediğim bir şey var mı? : /
Yanıtlar:
Zorunlu : İlk değeri boş bırakın - boş değerler üzerinde gerekli işler
Önkoşullar : Doğru html5 DOCTYPE ve adlandırılmış giriş alanı
<select name="somename" required>
<option value="">Please select</option>
<option value="one">One</option>
</select>
Gereğince belgeleri (listeleme ve koyu benimdir)
Gerekli özellik bir boolean özelliğidir.
Belirtildiğinde, kullanıcının formu göndermeden önce bir değer seçmesi istenir.Bir seçim öğesi
- gerekli bir özelliği belirtmişse,
- belirtilmiş birden fazla özelliği yok,
- ve ekran boyutu 1 (SIZE = 2 veya daha fazla değil - gerekmiyorsa atlayın);
- ve seçme öğesinin seçenekler listesindeki (varsa) ilk seçenek öğesinin değeri boş dize (yani şu şekilde sunulur
value=""
) ise,- ve bu seçenek öğesinin üst düğümü seçme öğesidir (bir optgroup öğesi değil),
bu seçenek, seçim öğesinin yer tutucu etiket seçeneğidir.
<select>
Eleman desteği yok required
spec göre, niteliği:
Hangi tarayıcı bunu kabul etmiyor?
(Elbette, kullanıcıların JavaScript'in etkin olacağını garanti edemeyeceğiniz için yine de sunucuda doğrulamanız gerekir.)
selected
Varsayılan olarak bir seçim seçmek için seçenek öğesinin özniteliğini kullanabilirsiniz . required
Kullanıcının bir şey seçtiğinden emin olmak için select öğesinin özelliğini kullanabilirsiniz .
Javascript'te, selectedIndex
seçilen seçeneğin dizinini almak için value
özelliği kontrol edebilir veya seçilen seçeneğin değerini almak için özelliği kontrol edebilirsiniz .
HTML5 spesifikasyonuna göre, selectedIndex
"varsa, ilk seçilen öğenin dizinini veya seçilen bir öğe yoksa −1 value
değerini döndürür . " Varsa, ilk seçilen öğenin değerini veya varsa boş dizeyi döndürür "Seçili öğe yok = -1 ise, hiçbir şey seçmediklerini bilirsiniz."
<button type="button" onclick="displaySelection()">What did I pick?</button>
<script>
function displaySelection()
{
var mySelect = document.getElementById("someSelectElement");
var mySelection = mySelect.selectedIndex;
alert(mySelection);
}
</script>
-1
. Üzgünüm, önce yorumlarda açıklık getirmedim.
Evet, çalışıyor:
<select name="somename" required>
<option value="">Please select</option>
<option value="one">One</option>
</select>
ilk seçeneği boş tutmalısınız.
<form action="">
<select required>
<option selected disabled value="">choose</option>
<option value="red">red</option>
<option value="yellow">yellow</option>
<option value="green">green</option>
<option value="grey">grey</option>
</select>
<input type="submit">
</form>
Seçim kutusunun ilk öğesinin değerini boş bırakın.
Bu nedenle, her FORM yayınladığınızda boş değer elde edersiniz ve bu yolu kullanarak kullanıcının açılır menüden bir şey seçmediğini bilirsiniz.
<select name="user_role" required>
<option value="">-Select-</option>
<option value="User">User</option>
<option value="Admin">Admin</option>
</select>
value
Özelliğini option
boş dizeye ayarlamanız gerekir :
<select name="status" required>
<option selected disabled value="">what's your status?</option>
<option value="code">coding</option>
<option value="sleep">sleeping</option>
</select>
select
kullanıcı üzerine bastığında value
seçili olanı option
sunucuya döndürür . Boş , boş bir giriş ile aynıdır -> mesajı yükseltir .submit
form
value
text
required
Value özniteliği, bir form gönderildiğinde sunucuya gönderilecek değeri belirtir.
bunu dene, bu işe yarayacak, bunu denedim ve bu işe yarıyor.
<!DOCTYPE html>
<html>
<body>
<form action="#">
<select required>
<option value="">None</option>
<option value="volvo">Volvo</option>
<option value="saab">Saab</option>
<option value="mercedes">Mercedes</option>
<option value="audi">Audi</option>
</select>
<input type="submit">
</form>
</body>
</html>
İlk seçeneğin değeri null olduğunda mükemmel çalışır. Açıklama: HTML5, düğme gönderildiğinde boş bir değer okuyacaktır. Null değilse (değer özniteliği), seçilen değerin null olmadığı varsayılır, bu nedenle doğrulama, yani seçenek etiketinde veri olup olmadığını kontrol ederek işe yarayacaktır. Bu nedenle, doğrulama yöntemini üretmeyecektir. Ancak, diğer taraf netleşir, eğer değer özniteliği null olarak ayarlanırsa (değer = ""), HTML5 ilk veya daha çok varsayılan seçili seçenekte boş bir değer algılar ve böylece doğrulama mesajını verir. Sorduğunuz için teşekkürler. Memnuniyetle yardım ettim. Yaptığımı bilmek güzel.
Html5'te tam ifadeyi kullanarak şunları yapabilirsiniz:
<select required="required">
Kısa ifadenin neden çalışmadığını bilmiyorum, ama bunu deneyin. Çözecek.
Bunu dene
<select>
<option value="" style="display:none">Please select</option>
<option value="one">One</option>
</select>
JQuery ile dinamik olarak da yapabilirsiniz
Set gerekli
$("#select1").attr('required', 'required');
Kaldırmanız gerekiyor
$("#select1").removeAttr('required');
selectedIndex
.