ฉันจะตรวจสอบได้อย่างไรว่าผู้ใช้เลือกบางสิ่งจาก<select>
ฟิลด์ใน HTML5 หรือไม่
ฉันเห็นว่า<select>
ไม่รองรับrequired
คุณสมบัติใหม่... ฉันต้องใช้ JavaScript หรือไม่ หรือมีบางอย่างที่ฉันขาดหายไป? : /
ฉันจะตรวจสอบได้อย่างไรว่าผู้ใช้เลือกบางสิ่งจาก<select>
ฟิลด์ใน HTML5 หรือไม่
ฉันเห็นว่า<select>
ไม่รองรับrequired
คุณสมบัติใหม่... ฉันต้องใช้ JavaScript หรือไม่ หรือมีบางอย่างที่ฉันขาดหายไป? : /
คำตอบ:
จำเป็น : มีค่าแรกที่ว่างเปล่า - จำเป็นต้องใช้กับค่าที่ว่างเปล่า
สิ่งที่ต้องทำก่อน : แก้ไข html5 DOCTYPE และฟิลด์อินพุตที่มีชื่อ
<select name="somename" required>
<option value="">Please select</option>
<option value="one">One</option>
</select>
ตามเอกสาร (รายชื่อและตัวหนาเป็นของฉัน)
คุณลักษณะที่จำเป็นคือแอตทริบิวต์บูลีน
เมื่อระบุผู้ใช้จะต้องเลือกค่าก่อนส่งแบบฟอร์มหากเลือกองค์ประกอบ
- มีการระบุแอตทริบิวต์ที่ต้องการ
- ไม่ได้ระบุแอตทริบิวต์หลายรายการ
- และมีขนาดจอแสดงผลเป็น 1 (ไม่ต้องมี SIZE = 2 หรือมากกว่า - ละเว้นหากไม่ต้องการ)
- และถ้าค่าขององค์ประกอบตัวเลือกแรกในรายการตัวเลือกขององค์ประกอบตัวเลือก (ถ้ามี) คือสตริงว่าง (เช่นมีอยู่
value=""
)- และโหนดหลักขององค์ประกอบตัวเลือกนั้นเป็นองค์ประกอบที่เลือก (และไม่ใช่องค์ประกอบ optgroup)
ดังนั้นตัวเลือกนั้นเป็นตัวเลือกป้ายกำกับตัวแทนองค์ประกอบของตัวเลือก
<select>
องค์ประกอบไม่สนับสนุนrequired
แอตทริบิวต์ตามข้อมูลจำเพาะ:
เบราว์เซอร์ใดที่ไม่ให้เกียรติสิ่งนี้
(แน่นอนคุณต้องตรวจสอบความถูกต้องของเซิร์ฟเวอร์เนื่องจากคุณไม่สามารถรับประกันได้ว่าผู้ใช้จะเปิดใช้งาน JavaScript)
คุณสามารถใช้selected
คุณสมบัติสำหรับองค์ประกอบตัวเลือกเพื่อเลือกตัวเลือกโดยค่าเริ่มต้น คุณสามารถใช้แอrequired
ททริบิวสำหรับองค์ประกอบที่เลือกเพื่อให้แน่ใจว่าผู้ใช้เลือกอะไรบางอย่าง
ใน Javascript คุณสามารถตรวจสอบselectedIndex
คุณสมบัติเพื่อรับดัชนีของตัวเลือกที่เลือกหรือคุณสามารถตรวจสอบvalue
คุณสมบัติเพื่อรับค่าของตัวเลือกที่เลือก
ตามข้อมูลจำเพาะของ HTML5 selectedIndex
"จะส่งคืนดัชนีของรายการที่เลือกแรกถ้ามีหรือ −1 หากไม่มีรายการที่เลือกและvalue
" ส่งคืนค่าของรายการแรกที่เลือกถ้ามีหรือสตริงว่างถ้ามี ไม่มีรายการที่เลือก "ถ้าเลือกInIndex = -1 คุณจะรู้ว่าพวกเขาไม่ได้เลือกอะไรเลย
<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
ฉันคิดว่าดีกว่าที่จะจัดระเบียบรหัสนี้เป็นข้อมูลเท่านั้นและแสดงผล ขออภัยฉันไม่ได้ชี้แจงในความคิดเห็นก่อน
ใช่มันทำงานได้:
<select name="somename" required>
<option value="">Please select</option>
<option value="one">One</option>
</select>
คุณต้องเว้นตัวเลือกแรกไว้ก่อน
<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>
ก่อนอื่นคุณต้องกำหนดค่าว่างในตัวเลือกแรก เช่นเลือกที่นี่จำเป็นต้องใช้งานเท่านั้น
ทำให้ค่าของรายการแรกของการเลือกกล่องว่างเปล่า
ดังนั้นเมื่อคุณโพสต์แบบฟอร์มทุกครั้งคุณจะได้รับค่าว่างและใช้วิธีนี้คุณจะรู้ว่าผู้ใช้นั้นไม่ได้เลือกอะไรจากการเลื่อนลง
<select name="user_role" required>
<option value="">-Select-</option>
<option value="User">User</option>
<option value="Admin">Admin</option>
</select>
คุณต้องตั้งค่าvalue
คุณสมบัติของoption
สตริงว่าง:
<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
จะกลับvalue
จากที่เลือกoption
ไปยังเซิร์ฟเวอร์เมื่อผู้ใช้กดบนsubmit
form
ค่าว่างvalue
นั้นเหมือนกับtext
อินพุตว่าง-> กำลังเพิ่มrequired
ข้อความ
แอตทริบิวต์ value ระบุค่าที่จะส่งไปยังเซิร์ฟเวอร์เมื่อมีการส่งแบบฟอร์ม
ลองสิ่งนี้จะได้ผลฉันได้ลองและใช้งานได้แล้ว
<!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>
ทำงานได้อย่างสมบูรณ์แบบหากค่าตัวเลือกแรกเป็นโมฆะ คำอธิบาย: HTML5 จะอ่านค่า Null บนปุ่มส่ง ถ้าไม่ใช่โมฆะ (แอตทริบิวต์ค่า) ค่าที่เลือกจะถือว่าไม่เป็นโมฆะดังนั้นการตรวจสอบจะทำงานเช่นโดยการตรวจสอบว่ามีข้อมูลในแท็กตัวเลือก ดังนั้นมันจะไม่สร้างวิธีการตรวจสอบ อย่างไรก็ตามฉันเดาว่าอีกด้านหนึ่งจะกลายเป็นชัดเจนถ้าแอตทริบิวต์ค่าถูกตั้งค่าเป็นโมฆะเช่น (value = ""), HTML5 จะตรวจสอบค่าว่างในตัวเลือกแรกหรือมากกว่าตัวเลือกเริ่มต้นที่ทำให้ข้อความการตรวจสอบ ขอบคุณที่ถาม. ยินดีที่ได้ช่วย. ดีใจที่รู้ว่าฉันทำ
ใน html5 คุณสามารถใช้นิพจน์แบบเต็มได้:
<select required="required">
ฉันไม่รู้ว่าทำไมการแสดงออกสั้น ๆ ใช้ไม่ได้ แต่ลองทำสิ่งนี้ มันจะแก้ปัญหา
ลองสิ่งนี้
<select>
<option value="" style="display:none">Please select</option>
<option value="one">One</option>
</select>
คุณสามารถทำได้ด้วย JQuery
ตั้งค่าที่จำเป็น
$("#select1").attr('required', 'required');
ลบที่จำเป็น
$("#select1").removeAttr('required');
selectedIndex
แอตทริบิวต์ที่คุณต้องการเป็น