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 requiredspec 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.)
selectedVarsayılan olarak bir seçim seçmek için seçenek öğesinin özniteliğini kullanabilirsiniz . requiredKullanıcının bir şey seçtiğinden emin olmak için select öğesinin özelliğini kullanabilirsiniz .
Javascript'te, selectedIndexseç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 valuedeğ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 optionboş 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>
selectkullanıcı üzerine bastığında valueseçili olanı optionsunucuya döndürür . Boş , boş bir giriş ile aynıdır -> mesajı yükseltir .submitformvaluetextrequired
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.