Bootstrap - แบบฟอร์ม
ในบทนี้เราจะศึกษาวิธีสร้างแบบฟอร์มอย่างง่ายดายโดยใช้ Bootstrap Bootstrap ช่วยให้ง่ายขึ้นด้วยมาร์กอัป HTML แบบง่ายและคลาสเพิ่มเติมสำหรับรูปแบบรูปแบบต่างๆ ในบทนี้เราจะศึกษาวิธีสร้างแบบฟอร์มอย่างง่ายดายโดยใช้ Bootstrap
เค้าโครงแบบฟอร์ม
Bootstrap ให้คุณมีเค้าโครงรูปแบบต่อไปนี้ -
- แบบฟอร์มแนวตั้ง (ค่าเริ่มต้น)
- แบบฟอร์มในบรรทัด
- รูปแบบแนวนอน
แบบฟอร์มแนวตั้งหรือพื้นฐาน
โครงสร้างรูปแบบพื้นฐานมาพร้อมกับ Bootstrap; การควบคุมแบบฟอร์มแต่ละรายการจะได้รับสไตล์สากลบางอย่างโดยอัตโนมัติ ในการสร้างแบบฟอร์มพื้นฐานให้ทำดังต่อไปนี้ -
เพิ่มฟอร์มบทบาทให้กับองค์ประกอบ <form> หลัก
ฉลากห่อและการควบคุมใน <div> กับชั้น.form กลุ่ม สิ่งนี้จำเป็นสำหรับการเว้นระยะห่างที่เหมาะสม
เพิ่มคลาสของ. form-controlให้กับองค์ประกอบ <input>, <textarea> และ <select> ที่เป็นข้อความทั้งหมด
<form role = "form">
<div class = "form-group">
<label for = "name">Name</label>
<input type = "text" class = "form-control" id = "name" placeholder = "Enter Name">
</div>
<div class = "form-group">
<label for = "inputfile">File input</label>
<input type = "file" id = "inputfile">
<p class = "help-block">Example block-level help text here.</p>
</div>
<div class = "checkbox">
<label><input type = "checkbox"> Check me out</label>
</div>
<button type = "submit" class = "btn btn-default">Submit</button>
</form>
แบบฟอร์มอินไลน์
ในการสร้างฟอร์มที่องค์ประกอบทั้งหมดอยู่ในบรรทัดจัดชิดซ้ายและป้ายกำกับอยู่ข้างๆให้เพิ่มคลาส. form-inlineลงในแท็ก <form>
<form class = "form-inline" role = "form">
<div class = "form-group">
<label class = "sr-only" for = "name">Name</label>
<input type = "text" class = "form-control" id = "name" placeholder = "Enter Name">
</div>
<div class = "form-group">
<label class = "sr-only" for = "inputfile">File input</label>
<input type = "file" id = "inputfile">
</div>
<div class = "checkbox">
<label><input type = "checkbox"> Check me out</label>
</div>
<button type = "submit" class = "btn btn-default">Submit</button>
</form>
โดยค่าเริ่มต้นอินพุตเลือกและพื้นที่ข้อความมีความกว้าง 100% ใน Bootstrap คุณต้องตั้งค่าความกว้างบนตัวควบคุมฟอร์มเมื่อใช้แบบฟอร์มอินไลน์
การใช้คลาส. sr-onlyคุณสามารถซ่อนเลเบลของแบบฟอร์มอินไลน์ได้
แบบฟอร์มแนวนอน
รูปแบบแนวนอนแตกต่างจากรูปแบบอื่น ๆ ไม่เพียง แต่ในปริมาณมาร์กอัปเท่านั้น แต่ยังรวมถึงการนำเสนอแบบฟอร์มด้วย ในการสร้างฟอร์มที่ใช้เค้าโครงแนวนอนให้ทำดังต่อไปนี้ -
เพิ่มคลาสของ. form-horizontalให้กับองค์ประกอบ <form> พาเรนต์
ฉลากห่อและการควบคุมใน <div> กับชั้น.form กลุ่ม
เพิ่มคลาสของ . control-labelลงในเลเบล
<form class = "form-horizontal" role = "form">
<div class = "form-group">
<label for = "firstname" class = "col-sm-2 control-label">First Name</label>
<div class = "col-sm-10">
<input type = "text" class = "form-control" id = "firstname" placeholder = "Enter First Name">
</div>
</div>
<div class = "form-group">
<label for = "lastname" class = "col-sm-2 control-label">Last Name</label>
<div class = "col-sm-10">
<input type = "text" class = "form-control" id = "lastname" placeholder = "Enter Last Name">
</div>
</div>
<div class = "form-group">
<div class = "col-sm-offset-2 col-sm-10">
<div class = "checkbox">
<label><input type = "checkbox"> Remember me</label>
</div>
</div>
</div>
<div class = "form-group">
<div class = "col-sm-offset-2 col-sm-10">
<button type = "submit" class = "btn btn-default">Sign in</button>
</div>
</div>
</form>
การควบคุมแบบฟอร์มที่รองรับ
Bootstrap รองรับการควบคุมรูปแบบที่พบบ่อยที่สุดโดยส่วนใหญ่ป้อนข้อมูลพื้นที่ข้อความช่องทำเครื่องหมายวิทยุและเลือก
อินพุต
ช่องข้อความฟอร์มที่พบบ่อยที่สุดคือช่องป้อนข้อมูล นี่คือที่ที่ผู้ใช้จะป้อนข้อมูลฟอร์มที่จำเป็นส่วนใหญ่ เงินทุนให้การสนับสนุนทุกรูปแบบการใส่ HTML5 พื้นเมือง: ข้อความรหัสผ่าน, วันที่และเวลาวันที่และเวลาท้องถิ่นวันเดือนเวลาสัปดาห์จำนวนอีเมล URL ค้นหาโทร,และสี จำเป็นต้องมีการประกาศประเภทที่เหมาะสมเพื่อให้อินพุตมีสไตล์อย่างสมบูรณ์
<form role = "form">
<div class = "form-group">
<label for = "name">Label</label>
<input type = "text" class = "form-control" placeholder = "Text input">
</div>
</form>
Textarea
textarea ใช้เมื่อคุณต้องการอินพุตหลายบรรทัด เปลี่ยนแอตทริบิวต์ของแถวตามความจำเป็น (แถวน้อยลง = กล่องเล็กลงแถวมากขึ้น = กล่องใหญ่ขึ้น)
<form role = "form">
<div class = "form-group">
<label for = "name">Text Area</label>
<textarea class = "form-control" rows = "3"></textarea>
</div>
</form>
กล่องกาเครื่องหมายและปุ่มวิทยุ
ช่องทำเครื่องหมายและปุ่มตัวเลือกเหมาะอย่างยิ่งเมื่อคุณต้องการให้ผู้ใช้เลือกจากรายการตัวเลือกที่ตั้งไว้ล่วงหน้า
เมื่อสร้างแบบฟอร์มให้ใช้ช่องทำเครื่องหมายหากคุณต้องการให้ผู้ใช้เลือกตัวเลือกจำนวนเท่าใดก็ได้จากรายการ ใช้วิทยุหากคุณต้องการ จำกัด ผู้ใช้ให้เลือกเพียงรายการเดียว
ใช้. checkbox-inlineหรือ. radio-inline class กับชุดของช่องทำเครื่องหมายหรือวิทยุสำหรับการควบคุมจะปรากฏในบรรทัดเดียวกัน
ตัวอย่างต่อไปนี้แสดงทั้งประเภท (ค่าเริ่มต้นและแบบอินไลน์) -
<label for = "name">Example of Default Checkbox and radio button </label>
<div class = "checkbox">
<label>
<input type = "checkbox" value = "">Option 1
</label>
</div>
<div class = "checkbox">
<label>
<input type = "checkbox" value = "">Option 2
</label>
</div>
<div class = "radio">
<label>
<input type = "radio" name = "optionsRadios" id = "optionsRadios1" value = "option1" checked> Option 1
</label>
</div>
<div class = "radio">
<label>
<input type = "radio" name = "optionsRadios" id = "optionsRadios2" value = "option2">
Option 2 - selecting it will deselect option 1
</label>
</div>
<label for = "name">Example of Inline Checkbox and radio button </label>
<div>
<label class = "checkbox-inline">
<input type = "checkbox" id = "inlineCheckbox1" value = "option1"> Option 1
</label>
<label class = "checkbox-inline">
<input type = "checkbox" id = "inlineCheckbox2" value = "option2"> Option 2
</label>
<label class = "checkbox-inline">
<input type = "checkbox" id = "inlineCheckbox3" value = "option3"> Option 3
</label>
<label class = "checkbox-inline">
<input type = "radio" name = "optionsRadiosinline" id = "optionsRadios3" value = "option1" checked> Option 1
</label>
<label class = "checkbox-inline">
<input type = "radio" name = "optionsRadiosinline" id = "optionsRadios4" value = "option2"> Option 2
</label>
</div>
เลือก
การเลือกใช้เมื่อคุณต้องการอนุญาตให้ผู้ใช้เลือกจากตัวเลือกต่างๆ แต่โดยค่าเริ่มต้นจะอนุญาตเพียงตัวเดียว
ใช้ <select> สำหรับตัวเลือกรายการที่ผู้ใช้คุ้นเคยเช่นสถานะหรือตัวเลข
ใช้multiple = "multiple"เพื่อให้ผู้ใช้เลือกมากกว่าหนึ่งตัวเลือก
ตัวอย่างต่อไปนี้แสดงให้เห็นทั้ง (เลือกและหลายประเภท) -
<form role = "form">
<div class = "form-group">
<label for = "name">Select list</label>
<select class = "form-control">
<option>1</option>
<option>2</option>
<option>3</option>
<option>4</option>
<option>5</option>
</select>
<label for = "name">Mutiple Select list</label>
<select multiple class = "form-control">
<option>1</option>
<option>2</option>
<option>3</option>
<option>4</option>
<option>5</option>
</select>
</div>
</form>
การควบคุมแบบคงที่
ใช้คลาส. form-control-staticบน <p> เมื่อคุณต้องการวางข้อความธรรมดาถัดจากป้ายกำกับฟอร์มภายในฟอร์มแนวนอน
<form class = "form-horizontal" role = "form">
<div class = "form-group">
<label class = "col-sm-2 control-label">Email</label>
<div class = "col-sm-10">
<p class = "form-control-static">[email protected]</p>
</div>
</div>
<div class = "form-group">
<label for = "inputPassword" class = "col-sm-2 control-label">Password</label>
<div class = "col-sm-10">
<input type = "password" class = "form-control" id = "inputPassword" placeholder = "Password">
</div>
</div>
</form>
สถานะการควบคุมแบบฟอร์ม
นอกเหนือจากสถานะ: focus (กล่าวคือผู้ใช้คลิกเข้าไปในอินพุตหรือแท็บ) แล้ว Bootstrap ยังเสนอสไตล์สำหรับอินพุตที่ปิดใช้งานและคลาสสำหรับการตรวจสอบแบบ
อินพุตโฟกัส
เมื่อได้รับการป้อนข้อมูล: เน้นเค้าร่างของท่านจะถูกลบออกและกล่องเงาถูกนำไปใช้
ปิดการใช้งาน lnputs
หากคุณต้องการปิดการใช้งานอินพุตเพียงแค่เพิ่มแอตทริบิวต์ที่ปิดใช้งานจะไม่เพียงปิดการใช้งานเท่านั้น นอกจากนี้ยังจะเปลี่ยนรูปแบบและเคอร์เซอร์ของเมาส์เมื่อเคอร์เซอร์วางเมาส์เหนือองค์ประกอบ
ปิดใช้งาน Fieldsets
เพิ่มแอตทริบิวต์ที่ปิดใช้งานไปยัง <fieldset> เพื่อปิดใช้งานการควบคุมทั้งหมดภายใน <fieldset> พร้อมกัน
สถานะการตรวจสอบ
Bootstrap ประกอบด้วยรูปแบบการตรวจสอบข้อผิดพลาดคำเตือนและข้อความแสดงความสำเร็จ หากต้องการใช้เพียงแค่เพิ่มคลาสที่เหมาะสม ( .has-warning, .has-error หรือ .has-success ) ให้กับองค์ประกอบหลัก
ตัวอย่างต่อไปนี้แสดงให้เห็นถึงสถานะการควบคุมฟอร์มทั้งหมด -
<form class = "form-horizontal" role = "form">
<div class = "form-group">
<label class = "col-sm-2 control-label">Focused</label>
<div class = "col-sm-10">
<input class = "form-control" id = "focusedInput" type = "text" value = "This is focused...">
</div>
</div>
<div class = "form-group">
<label for = "inputPassword" class = "col-sm-2 control-label">
Disabled
</label>
<div class = "col-sm-10">
<input class = "form-control" id = "disabledInput" type = "text" placeholder = "Disabled input here..." disabled>
</div>
</div>
<fieldset disabled>
<div class = "form-group">
<label for = "disabledTextInput" class = "col-sm-2 control-label">
Disabled input (Fieldset disabled)
</label>
<div class = "col-sm-10">
<input type = "text" id = "disabledTextInput" class = "form-control" placeholder = "Disabled input">
</div>
</div>
<div class = "form-group">
<label for = "disabledSelect" class = "col-sm-2 control-label">
Disabled select menu (Fieldset disabled)
</label>
<div class = "col-sm-10">
<select id = "disabledSelect" class = "form-control">
<option>Disabled select</option>
</select>
</div>
</div>
</fieldset>
<div class = "form-group has-success">
<label class = "col-sm-2 control-label" for = "inputSuccess">
Input with success
</label>
<div class = "col-sm-10">
<input type = "text" class = "form-control" id = "inputSuccess">
</div>
</div>
<div class = "form-group has-warning">
<label class = "col-sm-2 control-label" for = "inputWarning">
Input with warning
</label>
<div class = "col-sm-10">
<input type = "text" class = "form-control" id = "inputWarning">
</div>
</div>
<div class = "form-group has-error">
<label class = "col-sm-2 control-label" for = "inputError">
Input with error
</label>
<div class = "col-sm-10">
<input type = "text" class = "form-control" id = "inputError">
</div>
</div>
</form>
ขนาดควบคุมฟอร์ม
คุณสามารถกำหนดความสูงและความกว้างของฟอร์มโดยใช้คลาสเช่น. input-lgและ. col-lg- *ตามลำดับ ตัวอย่างต่อไปนี้แสดงให้เห็นถึงสิ่งนี้ -
<form role = "form">
<div class = "form-group">
<input class = "form-control input-lg" type = "text" placeholder =".input-lg">
</div>
<div class = "form-group">
<input class = "form-control" type = "text" placeholder = "Default input">
</div>
<div class = "form-group">
<input class = "form-control input-sm" type = "text" placeholder = ".input-sm">
</div>
<div class = "form-group"></div>
<div class = "form-group">
<select class = "form-control input-lg">
<option value = "">.input-lg</option>
</select>
</div>
<div class = "form-group">
<select class = "form-control">
<option value = "">Default select</option>
</select>
</div>
<div class = "form-group">
<select class = "form-control input-sm">
<option value = "">.input-sm</option>
</select>
</div>
<div class = "row">
<div class = "col-lg-2">
<input type = "text" class = "form-control" placeholder = ".col-lg-2">
</div>
<div class = "col-lg-3">
<input type = "text" class = "form-control" placeholder = ".col-lg-3">
</div>
<div class = "col-lg-4">
<input type = "text" class = "form-control" placeholder = ".col-lg-4">
</div>
</div>
</form>
ข้อความช่วยเหลือ
ตัวควบคุมฟอร์ม Bootstrap สามารถมีข้อความวิธีใช้ระดับบล็อกที่ไหลไปพร้อมกับอินพุต ในการเพิ่มบล็อกเนื้อหาแบบเต็มความกว้างให้ใช้. help-blockหลัง <input> ตัวอย่างต่อไปนี้แสดงให้เห็นถึงสิ่งนี้ -
<form role = "form">
<span>Example of Help Text</span>
<input class = "form-control" type = "text" placeholder = "">
<span class = "help-block">
A longer block of help text that breaks onto a new line and may extend beyond one line.
</span>
</form>