Sourceទម្រង់
ឧទាហរណ៍ និងគោលការណ៍ណែនាំការប្រើប្រាស់សម្រាប់រចនាប័ទ្មការគ្រប់គ្រងទម្រង់ ជម្រើសប្លង់ និងសមាសធាតុផ្ទាល់ខ្លួនសម្រាប់បង្កើតទម្រង់ផ្សេងៗគ្នា។
ការគ្រប់គ្រងទម្រង់របស់ Bootstrap ពង្រីកលើ រចនាប័ទ្មទម្រង់ដែល បានចាប់ផ្ដើមឡើងវិញរបស់យើង ជាមួយនឹងថ្នាក់។ ប្រើថ្នាក់ទាំងនេះដើម្បីជ្រើសរើសការបង្ហាញតាមបំណងរបស់ពួកគេសម្រាប់ការបង្ហាញដែលស៊ីសង្វាក់គ្នាជាងមុននៅលើកម្មវិធីរុករកតាមអ៊ីនធឺណិត និងឧបករណ៍។
ត្រូវប្រាកដថាប្រើ type
គុណលក្ខណៈសមស្របលើធាតុបញ្ចូលទាំងអស់ (ឧ. email
សម្រាប់អាសយដ្ឋានអ៊ីមែល ឬ number
សម្រាប់ព័ត៌មានជាលេខ) ដើម្បីទាញយកអត្ថប្រយោជន៍ពីការគ្រប់គ្រងការបញ្ចូលថ្មីៗដូចជា ការផ្ទៀងផ្ទាត់អ៊ីមែល ការជ្រើសរើសលេខ និងច្រើនទៀត។
នេះជាឧទាហរណ៍រហ័សដើម្បីបង្ហាញរចនាប័ទ្មទម្រង់របស់ Bootstrap ។ បន្តអានសម្រាប់ឯកសារអំពីថ្នាក់ដែលត្រូវការ ប្លង់ទម្រង់ និងច្រើនទៀត។
វត្ថុបញ្ជាទម្រង់អត្ថបទ—ដូចជា <input>
s, <select>
s, និង <textarea>
s — ត្រូវបានកំណត់រចនាប័ទ្មជាមួយ .form-control
ថ្នាក់។ រួមបញ្ចូលមានរចនាប័ទ្មសម្រាប់រូបរាងទូទៅ ស្ថានភាពផ្តោតអារម្មណ៍ ទំហំ និងច្រើនទៀត។
ត្រូវប្រាកដថាស្វែងរក ទម្រង់ផ្ទាល់ខ្លួន របស់យើង ដើម្បីបន្ថែមរចនាប័ទ្ម <select>
។
សម្រាប់ការបញ្ចូលឯកសារ ប្តូរ .form-control
សម្រាប់ .form-control-file
.
កំណត់កម្ពស់ដោយប្រើថ្នាក់ដូចជា .form-control-lg
និង .form-control-sm
.
បន្ថែម readonly
គុណលក្ខណៈប៊ូលីនលើធាតុបញ្ចូល ដើម្បីការពារការកែប្រែតម្លៃរបស់ធាតុបញ្ចូល។ ធាតុបញ្ចូលបានតែអានហាក់ដូចជាស្រាលជាងមុន (ដូចជាការបញ្ចូលដែលបិទ) ប៉ុន្តែរក្សាទស្សន៍ទ្រនិចស្តង់ដារ។
ប្រសិនបើអ្នកចង់មាន <input readonly>
ធាតុក្នុងទម្រង់បែបបទរបស់អ្នកដែលមានរចនាប័ទ្មជាអត្ថបទធម្មតា សូមប្រើ .form-control-plaintext
ថ្នាក់ដើម្បីយករចនាប័ទ្មវាលទម្រង់លំនាំដើមចេញ ហើយរក្សារឹមនិងទ្រនាប់ត្រឹមត្រូវ។
កំណត់ការបញ្ចូលជួរដែលអាចរមូរដោយផ្ដេកដោយប្រើ .form-control-range
.
ប្រអប់ធីក និងវិទ្យុលំនាំដើមត្រូវបានកែលម្អដោយជំនួយពី ថ្នាក់តែមួយសម្រាប់ប្រភេទបញ្ចូលទាំងពីរ ដែលធ្វើអោយប្រសើរឡើងនូវប្លង់ និងឥរិយាបថនៃធាតុ HTML របស់.form-check
ពួកគេ ។ ប្រអប់ធីកគឺសម្រាប់ជ្រើសរើសជម្រើសមួយ ឬច្រើននៅក្នុងបញ្ជីមួយ ខណៈពេលដែលវិទ្យុគឺសម្រាប់ជ្រើសរើសជម្រើសមួយពីមនុស្សជាច្រើន។
ប្រអប់ធីក និងវិទ្យុដែលបិទត្រូវបានគាំទ្រ ប៉ុន្តែដើម្បីផ្តល់ not-allowed
ទស្សន៍ទ្រនិចនៅលើការសង្កត់លើមេ <label>
អ្នកត្រូវបន្ថែម disabled
គុណលក្ខណៈទៅ .form-check-input
. គុណលក្ខណៈដែលបានបិទនឹងអនុវត្តពណ៌ស្រាលជាងមុន ដើម្បីជួយបញ្ជាក់ពីស្ថានភាពនៃការបញ្ចូល។
ប្រអប់ធីក និងការប្រើប្រាស់វិទ្យុត្រូវបានបង្កើតឡើងដើម្បីគាំទ្រការបញ្ជាក់ទម្រង់ដែលមានមូលដ្ឋានលើ HTML និងផ្តល់នូវស្លាកដែលអាចចូលប្រើបានសង្ខេប។ ដូចនេះ <input>
s និង <label>
s របស់យើងគឺជាធាតុបងប្អូនបង្កើត ផ្ទុយពី <input>
ក្នុង <label>
. នេះគឺជាការនិយាយច្រើនជាងនេះបន្តិចព្រោះអ្នកត្រូវតែបញ្ជាក់ id
និង for
គុណលក្ខណៈដើម្បីទាក់ទង <input>
និង <label>
.
តាមលំនាំដើម ប្រអប់ធីក និងវិទ្យុណាមួយដែលជាបងប្អូនបង្កើតនឹងត្រូវបានដាក់ជាជង់បញ្ឈរ និងដាក់ចន្លោះសមស្របជាមួយ .form-check
.
ប្រអប់ធីកជាក្រុម ឬវិទ្យុនៅលើជួរផ្ដេកដូចគ្នាដោយបន្ថែម .form-check-inline
ទៅណាមួយ .form-check
។
បន្ថែម .position-static
ទៅធាតុបញ្ចូលក្នុង .form-check
នោះមិនមានអត្ថបទស្លាកណាមួយទេ។ សូមចងចាំថានៅតែផ្តល់នូវទម្រង់នៃស្លាកមួយចំនួនសម្រាប់បច្ចេកវិទ្យាជំនួយ (ឧទាហរណ៍ ការប្រើប្រាស់ aria-label
)។
ដោយសារ Bootstrap អនុវត្ត display: block
និង width: 100%
ចំពោះការគ្រប់គ្រងទម្រង់ស្ទើរតែទាំងអស់របស់យើង ទម្រង់នឹងតាមលំនាំដើមជង់បញ្ឈរ។ ថ្នាក់បន្ថែមអាចត្រូវបានប្រើដើម្បីផ្លាស់ប្តូរប្លង់នេះតាមមូលដ្ឋានទម្រង់នីមួយៗ។
ថ្នាក់ .form-group
គឺជាមធ្យោបាយងាយស្រួលបំផុតក្នុងការបន្ថែមរចនាសម្ព័ន្ធមួយចំនួនទៅក្នុងទម្រង់។ វាផ្តល់នូវថ្នាក់ដែលអាចបត់បែនបានដែលលើកទឹកចិត្តឱ្យមានការដាក់ជាក្រុមត្រឹមត្រូវនៃស្លាក ការគ្រប់គ្រង អត្ថបទជំនួយជាជម្រើស និងការផ្ញើសារដែលមានសុពលភាព។ តាមលំនាំដើម វាអនុវត្តតែប៉ុណ្ណោះ margin-bottom
ប៉ុន្តែវាជ្រើសរើសរចនាប័ទ្មបន្ថែម .form-inline
តាមតម្រូវការ។ ប្រើវាជាមួយ <fieldset>
s, <div>
s ឬស្ទើរតែគ្រប់ធាតុផ្សេងទៀត។
ទម្រង់ស្មុគ្រស្មាញកាន់តែច្រើនអាចត្រូវបានសាងសង់ដោយប្រើថ្នាក់ក្រឡាចត្រង្គរបស់យើង។ ប្រើវាសម្រាប់ប្លង់ទម្រង់ដែលត្រូវការជួរឈរច្រើន ទទឹងផ្លាស់ប្តូរ និងជម្រើសតម្រឹមបន្ថែម។
អ្នកក៏អាចប្តូរ .row
សម្រាប់ .form-row
បំរែបំរួលនៃជួរក្រឡាក្រឡាចត្រង្គស្តង់ដាររបស់យើង ដែលបដិសេធចោលជួរជួរលំនាំដើមសម្រាប់ប្លង់រឹង និងបង្រួមជាងមុន។
ប្លង់ស្មុគ្រស្មាញបន្ថែមទៀតក៏អាចត្រូវបានបង្កើតជាមួយប្រព័ន្ធក្រឡាចត្រង្គផងដែរ។
បង្កើតទម្រង់ផ្តេកជាមួយក្រឡាចត្រង្គដោយបន្ថែម .row
ថ្នាក់ដើម្បីបង្កើតជាក្រុម និងប្រើ .col-*-*
ថ្នាក់ដើម្បីបញ្ជាក់ទទឹងនៃស្លាក និងវត្ថុបញ្ជារបស់អ្នក។ ត្រូវប្រាកដថាបន្ថែម .col-form-label
ទៅ <label>
s របស់អ្នកផងដែរ ដូច្នេះពួកវាត្រូវបានដាក់កណ្តាលបញ្ឈរជាមួយនឹងការគ្រប់គ្រងទម្រង់ដែលពាក់ព័ន្ធរបស់ពួកគេ។
ពេលខ្លះ អ្នកប្រហែលជាត្រូវប្រើឧបករណ៍ប្រើប្រាស់រឹម ឬទ្រនាប់ដើម្បីបង្កើតការតម្រឹមដ៏ល្អឥតខ្ចោះដែលអ្នកត្រូវការ។ ឧទាហរណ៍ យើងបានដក padding-top
ស្លាកបញ្ចូលវិទ្យុដែលដាក់ជាជង់របស់យើងចេញ ដើម្បីតម្រឹមបន្ទាត់មូលដ្ឋានអត្ថបទឱ្យបានល្អប្រសើរ។
ត្រូវប្រាកដថាប្រើ .col-form-label-sm
ឬ .col-form-label-lg
ទៅ <label>
s ឬ <legend>
s របស់អ្នកដើម្បីធ្វើតាមទំហំ .form-control-lg
និង .form-control-sm
.
ដូចដែលបានបង្ហាញនៅក្នុងឧទាហរណ៍មុន ប្រព័ន្ធក្រឡាចត្រង្គរបស់យើងអនុញ្ញាតឱ្យអ្នកដាក់លេខណាមួយ .col
នៅក្នុង a .row
ឬ .form-row
. ពួកវានឹងបែងចែកទទឹងដែលមានស្មើៗគ្នារវាងពួកវា។ អ្នកក៏អាចជ្រើសរើសសំណុំរងនៃជួរឈររបស់អ្នកដើម្បីយកកន្លែងទំនេរច្រើន ឬតិច ខណៈដែល .col
s ដែលនៅសល់ត្រូវបែងចែកស្មើគ្នាជាមួយនឹងថ្នាក់ជួរឈរជាក់លាក់ដូចជា .col-7
.
ឧទាហរណ៍ខាងក្រោមប្រើឧបករណ៍ប្រើប្រាស់ flexbox ដើម្បីដាក់កណ្តាលមាតិកាបញ្ឈរ និងការផ្លាស់ប្តូរ .col
ដើម្បី .col-auto
ឱ្យជួរឈររបស់អ្នកប្រើទំហំច្រើនតាមតម្រូវការ។ ដាក់វិធីមួយទៀត ទំហំជួរឈរដោយខ្លួនវាផ្អែកលើមាតិកា។
បន្ទាប់មក អ្នកអាច Remix ម្តងទៀតជាមួយនឹងថ្នាក់ជួរឈរជាក់លាក់នៃទំហំ។
ហើយជាការពិតណាស់ ការគ្រប់គ្រងទម្រង់ផ្ទាល់ខ្លួន ត្រូវបានគាំទ្រ។
ប្រើ .form-inline
ថ្នាក់ដើម្បីបង្ហាញស៊េរីនៃស្លាក ការគ្រប់គ្រងទម្រង់ និងប៊ូតុងនៅលើជួរផ្ដេកតែមួយ។ ការគ្រប់គ្រងទម្រង់ក្នុងទម្រង់ក្នុងជួរខុសគ្នាបន្តិចបន្តួចពីស្ថានភាពលំនាំដើមរបស់វា។
- ការគ្រប់គ្រងគឺ បង្រួម
display: flex
ចន្លោះពណ៌ស HTML ណាមួយ និងអនុញ្ញាតឱ្យអ្នកផ្តល់នូវការគ្រប់គ្រងការតម្រឹមជាមួយនឹង ឧបករណ៍ប្រើប្រាស់ គម្លាត និង ប្រអប់ flexbox ។
- ការគ្រប់គ្រង និងក្រុមបញ្ចូលទទួលបាន
width: auto
ដើម្បីបដិសេធលំនាំដើម Bootstrap width: 100%
។
- ការគ្រប់គ្រង បង្ហាញក្នុងជួរតែក្នុងច្រកមើលដែលមានទទឹងយ៉ាងហោចណាស់ 576px ដើម្បីគណនាច្រកមើលតូចចង្អៀតនៅលើឧបករណ៍ចល័ត។
អ្នកប្រហែលជាត្រូវដោះស្រាយដោយដៃនូវទទឹង និងការតម្រឹមនៃការត្រួតពិនិត្យទម្រង់បុគ្គលជាមួយ ឧបករណ៍ប្រើប្រាស់គម្លាត (ដូចរូបខាងក្រោម)។ ជាចុងក្រោយ ត្រូវប្រាកដថាតែងតែរួមបញ្ចូល <label>
ជាមួយការគ្រប់គ្រងទម្រង់នីមួយៗ ទោះបីជាអ្នកត្រូវការលាក់វាពីអ្នកទស្សនាដែលមិនមែនជាអ្នកអានអេក្រង់ជាមួយ .sr-only
.
ការគ្រប់គ្រងទម្រង់ផ្ទាល់ខ្លួន និងការជ្រើសរើសក៏ត្រូវបានគាំទ្រផងដែរ។
ជម្មើសជំនួសចំពោះស្លាកដែលលាក់
បច្ចេកវិទ្យាជំនួយដូចជាកម្មវិធីអានអេក្រង់នឹងមានបញ្ហាជាមួយនឹងទម្រង់របស់អ្នក ប្រសិនបើអ្នកមិនបញ្ចូលស្លាកសម្រាប់រាល់ការបញ្ចូល។ សម្រាប់ទម្រង់ក្នុងជួរទាំងនេះ អ្នកអាចលាក់ស្លាកដោយប្រើ .sr-only
ថ្នាក់។ មានវិធីសាស្រ្តជំនួសបន្ថែមទៀតនៃការផ្តល់ស្លាកសម្រាប់បច្ចេកវិទ្យាជំនួយ ដូចជា aria-label
, aria-labelledby
ឬ title
គុណលក្ខណៈ។ ប្រសិនបើគ្មានវត្ថុទាំងនេះទេនោះ បច្ចេកវិទ្យាជំនួយអាចងាកទៅរកការប្រើប្រាស់ placeholder
គុណលក្ខណៈនេះ ប្រសិនបើមានវត្តមាន ប៉ុន្តែសូមចំណាំថាការប្រើ placeholder
ជំនួសវិធីដាក់ស្លាកផ្សេងទៀតមិនត្រូវបានណែនាំទេ។
អត្ថបទជំនួយកម្រិតប្លុកក្នុងទម្រង់អាចត្រូវបានបង្កើតដោយប្រើ .form-text
(ពីមុនត្រូវបានគេស្គាល់ថា .help-block
នៅក្នុង v3) ។ អត្ថបទជំនួយក្នុងជួរអាចត្រូវបានអនុវត្តដោយភាពបត់បែនដោយប្រើធាតុ HTML ខាងក្នុងណាមួយ និងថ្នាក់ឧបករណ៍ប្រើប្រាស់ដូចជា .text-muted
.
ការភ្ជាប់អត្ថបទជំនួយជាមួយការគ្រប់គ្រងទម្រង់
អត្ថបទជំនួយគួរតែត្រូវបានទាក់ទងយ៉ាងច្បាស់ជាមួយនឹងការគ្រប់គ្រងទម្រង់ដែលវាទាក់ទងនឹងការប្រើប្រាស់ aria-describedby
គុណលក្ខណៈ។ វានឹងធានាថា បច្ចេកវិទ្យាជំនួយ ដូចជាកម្មវិធីអានអេក្រង់នឹងប្រកាសអត្ថបទជំនួយនេះ នៅពេលដែលអ្នកប្រើប្រាស់ផ្តោត ឬបញ្ចូលការគ្រប់គ្រង។
អត្ថបទជំនួយខាងក្រោមធាតុបញ្ចូលអាចត្រូវបានកំណត់រចនាប័ទ្មជាមួយ .form-text
. ថ្នាក់នេះរួមបញ្ចូល display: block
និងបន្ថែមរឹមកំពូលមួយចំនួនសម្រាប់គម្លាតងាយស្រួលពីធាតុបញ្ចូលខាងលើ។
ពាក្យសម្ងាត់របស់អ្នកត្រូវតែមានប្រវែង 8-20 តួអក្សរ មានអក្សរ និងលេខ ហើយមិនត្រូវមានដកឃ្លា តួអក្សរពិសេស ឬសញ្ញាអារម្មណ៍នោះទេ។
អត្ថបទក្នុងជួរអាចប្រើធាតុ HTML ធម្មតាណាមួយ (មិនថាជា <small>
, <span>
ឬអ្វីផ្សេងទៀត) ដោយគ្មានអ្វីក្រៅពីថ្នាក់ឧបករណ៍ប្រើប្រាស់ទេ។
បន្ថែម disabled
គុណលក្ខណៈប៊ូលីននៅលើធាតុបញ្ចូល ដើម្បីការពារអន្តរកម្មរបស់អ្នកប្រើ និងធ្វើឱ្យវាកាន់តែស្រាលជាងមុន។
បន្ថែម disabled
គុណលក្ខណៈទៅ a <fieldset>
ដើម្បីបិទការគ្រប់គ្រងទាំងអស់នៅក្នុង។
ការប្រុងប្រយ័ត្នជាមួយយុថ្កា
តាមលំនាំដើម កម្មវិធីរុករកតាមអ៊ីនធឺណិតនឹងចាត់ទុកការគ្រប់គ្រងទម្រង់ដើមទាំងអស់ ( <input>
, <select>
និង <button>
ធាតុ) នៅខាងក្នុង <fieldset disabled>
ជាបិទ ដោយការពារអន្តរកម្មក្តារចុច និងកណ្តុរនៅលើពួកវា។ ទោះយ៉ាងណាក៏ដោយ ប្រសិនបើទម្រង់របស់អ្នករួមបញ្ចូល <a ... class="btn btn-*">
ធាតុផងដែរ ទាំងនេះនឹងត្រូវបានផ្តល់តែរចនាប័ទ្មនៃ pointer-events: none
. ដូចដែលបានកត់សម្គាល់នៅក្នុងផ្នែកអំពី ស្ថានភាពបិទសម្រាប់ប៊ូតុង (និងជាពិសេសនៅក្នុងផ្នែករងសម្រាប់ធាតុយុថ្កា) លក្ខណៈសម្បត្តិ CSS នេះមិនទាន់មានលក្ខណៈស្តង់ដារនៅឡើយ ហើយមិនត្រូវបានគាំទ្រពេញលេញនៅក្នុង Internet Explorer 10 ហើយនឹងមិនរារាំងអ្នកប្រើប្រាស់ក្តារចុចពីការក្លាយជា អាចផ្តោត ឬធ្វើឱ្យតំណទាំងនេះសកម្ម។ ដូច្នេះដើម្បីឱ្យមានសុវត្ថិភាព សូមប្រើ JavaScript ផ្ទាល់ខ្លួន ដើម្បីបិទតំណបែបនេះ។
ភាពឆបគ្នាឆ្លងកម្មវិធីរុករក
ខណៈពេលដែល Bootstrap នឹងអនុវត្តរចនាប័ទ្មទាំងនេះនៅក្នុងកម្មវិធីរុករកទាំងអស់ Internet Explorer 11 និងខាងក្រោមមិនគាំទ្រទាំងស្រុងនូវ disabled
គុណលក្ខណៈនៅលើ <fieldset>
. ប្រើ JavaScript ផ្ទាល់ខ្លួនដើម្បីបិទសំណុំវាលនៅក្នុងកម្មវិធីរុករកទាំងនេះ។
ផ្តល់មតិកែលម្អដ៏មានតម្លៃ និងអាចអនុវត្តបានដល់អ្នកប្រើប្រាស់របស់អ្នកជាមួយនឹងសុពលភាពទម្រង់ HTML5 – មាននៅក្នុងកម្មវិធីរុករកតាមអ៊ីនធឺណិតទាំងអស់របស់យើងដែលគាំទ្រ ។ ជ្រើសរើសពីមតិកែលម្អដែលមានសុពលភាពលំនាំដើមរបស់កម្មវិធីរុករកតាមអ៊ីនធឺណិត ឬអនុវត្តសារផ្ទាល់ខ្លួនជាមួយនឹងថ្នាក់ដែលភ្ជាប់មកជាមួយ និង JavaScript ចាប់ផ្តើមរបស់យើង។
បច្ចុប្បន្ន យើងសូមណែនាំឱ្យប្រើរចនាប័ទ្មសុពលភាពផ្ទាល់ខ្លួន ដោយសារសារសុពលភាពលំនាំដើមរបស់កម្មវិធីរុករកតាមអ៊ីនធឺណិតមិនត្រូវបានបង្ហាញជាប់លាប់ទៅនឹងបច្ចេកវិទ្យាជំនួយនៅក្នុងកម្មវិធីរុករកទាំងអស់ (ជាពិសេសគឺ Chrome នៅលើកុំព្យូទ័រលើតុ និងទូរស័ព្ទ)។
នេះជារបៀបដែលការផ្ទៀងផ្ទាត់ទម្រង់ដំណើរការជាមួយ Bootstrap៖
- សុពលភាពទម្រង់ HTML ត្រូវបានអនុវត្តតាមរយៈ CSS's pseudo-classes
:invalid
និង :valid
. វាអនុវត្តចំពោះ <input>
, <select>
, និង <textarea>
ធាតុ។
- Bootstrap វិសាលភាព
:invalid
និង :valid
រចនាប័ទ្មទៅ .was-validated
ថ្នាក់មេ ដែលជាធម្មតាត្រូវបានអនុវត្តទៅ <form>
. បើមិនដូច្នេះទេ វាលដែលត្រូវការណាមួយដែលគ្មានតម្លៃបង្ហាញថាមិនត្រឹមត្រូវនៅពេលផ្ទុកទំព័រ។ វិធីនេះ អ្នកអាចជ្រើសរើសពេលណាដើម្បីធ្វើឲ្យពួកវាសកម្ម (ជាធម្មតាបន្ទាប់ពីការដាក់ស្នើទម្រង់ត្រូវបានព្យាយាម)។
- ដើម្បីកំណត់រូបរាងទម្រង់ឡើងវិញ (ឧទាហរណ៍ក្នុងករណីនៃការដាក់ស្នើទម្រង់ថាមវន្តដោយប្រើ AJAX) សូមដក
.was-validated
ថ្នាក់ចេញពីទម្រង់ <form>
ម្តងទៀតបន្ទាប់ពីការដាក់ស្នើ។
- ជាជម្រើសជំនួស
.is-invalid
ហើយ .is-valid
ថ្នាក់អាចត្រូវបានប្រើប្រាស់ជំនួសឱ្យ pseudo-classes សម្រាប់ សុពលភាពផ្នែកខាងម៉ាស៊ីនមេ ។ ពួកគេមិនត្រូវការ .was-validated
ថ្នាក់មេទេ។
- ដោយសារតែមានឧបសគ្គនៅក្នុងរបៀបដែល CSS ដំណើរការ យើងមិនអាច (នៅពេលបច្ចុប្បន្ន) អនុវត្តរចនាប័ទ្ម
<label>
ដែលមកមុនការគ្រប់គ្រងទម្រង់នៅក្នុង DOM ដោយគ្មានជំនួយពី JavaScript ផ្ទាល់ខ្លួនទេ។
- កម្មវិធីរុករកតាមអ៊ីនធឺណិតទំនើបទាំងអស់គាំទ្រ API សុពលភាពកម្រិត ដែលជាស៊េរីនៃវិធីសាស្ត្រ JavaScript សម្រាប់ធ្វើឱ្យមានសុពលភាពការត្រួតពិនិត្យទម្រង់។
- សារមតិកែលម្អអាចប្រើប្រាស់ លំនាំដើមរបស់កម្មវិធីរុករក តាមអ៊ីនធឺណិត (ខុសគ្នាសម្រាប់កម្មវិធីរុករកតាមអ៊ីនធឺណិតនីមួយៗ និងមិនមានរចនាប័ទ្មតាមរយៈ CSS) ឬរចនាប័ទ្មមតិកែលម្អផ្ទាល់ខ្លួនរបស់យើងជាមួយនឹង HTML និង CSS បន្ថែម។
- អ្នកអាចផ្តល់សារសុពលភាពផ្ទាល់ខ្លួនជាមួយ
setCustomValidity
នៅក្នុង JavaScript ។
ជាមួយនឹងគំនិតនោះ សូមពិចារណាការបង្ហាញខាងក្រោមសម្រាប់រចនាប័ទ្មសុពលភាពទម្រង់ផ្ទាល់ខ្លួនរបស់យើង ថ្នាក់ចំហៀងម៉ាស៊ីនមេស្រេចចិត្ត និងលំនាំដើមនៃកម្មវិធីរុករកតាមអ៊ីនធឺណិត។
សម្រាប់សារសុពលភាពទម្រង់ Bootstrap ផ្ទាល់ខ្លួន អ្នកនឹងត្រូវបន្ថែម novalidate
គុណលក្ខណៈប៊ូលីនទៅ <form>
. នេះបិទដំណើរការការណែនាំឧបករណ៍មតិកែលម្អលំនាំដើមរបស់កម្មវិធីរុករក ប៉ុន្តែនៅតែផ្តល់នូវការចូលប្រើ APIs សុពលភាពទម្រង់នៅក្នុង JavaScript។ ព្យាយាមដាក់ទម្រង់ខាងក្រោម; JavaScript របស់យើងនឹងស្ទាក់ចាប់ប៊ូតុងបញ្ជូន និងបញ្ជូនមតិត្រឡប់ទៅកាន់អ្នក។
នៅពេលព្យាយាមដាក់ស្នើ អ្នកនឹងឃើញ រចនាប័ទ្ម :invalid
និង :valid
រចនាប័ទ្មដែលបានអនុវត្តចំពោះការគ្រប់គ្រងទម្រង់របស់អ្នក។
កម្មវិធីរុករកតាមអ៊ីនធឺណិតលំនាំដើម
មិនចាប់អារម្មណ៍នឹងសារមតិកែលម្អដែលមានសុពលភាពផ្ទាល់ខ្លួន ឬការសរសេរ JavaScript ដើម្បីផ្លាស់ប្តូរឥរិយាបថទម្រង់មែនទេ? ល្អទាំងអស់ អ្នកអាចប្រើលំនាំដើមរបស់កម្មវិធីរុករកតាមអ៊ីនធឺណិត។ សាកល្បងដាក់ទម្រង់ខាងក្រោម។ អាស្រ័យលើកម្មវិធីរុករកតាមអ៊ីនធឺណិត និងប្រព័ន្ធប្រតិបត្តិការរបស់អ្នក អ្នកនឹងឃើញរចនាប័ទ្មមតិកែលម្អខុសគ្នាបន្តិចបន្តួច។
ខណៈពេលដែលរចនាប័ទ្មមតិកែលម្អទាំងនេះមិនអាចត្រូវបានកំណត់រចនាប័ទ្មជាមួយ CSS អ្នកនៅតែអាចប្ដូរតាមបំណងអត្ថបទមតិកែលម្អតាមរយៈ JavaScript ។
យើងសូមណែនាំឱ្យប្រើការផ្ទៀងផ្ទាត់ភាគីអតិថិជន ប៉ុន្តែក្នុងករណីដែលអ្នកត្រូវការផ្នែកខាងម៉ាស៊ីនមេ អ្នកអាចចង្អុលបង្ហាញវាលទម្រង់មិនត្រឹមត្រូវ និងត្រឹមត្រូវជាមួយ .is-invalid
និង .is-valid
. ចំណាំថា .invalid-feedback
ត្រូវបានគាំទ្រជាមួយថ្នាក់ទាំងនេះផងដែរ។
ទម្រង់ឧទាហរណ៍របស់យើងបង្ហាញអត្ថបទដើម <input>
ខាងលើ ប៉ុន្តែរចនាប័ទ្មសុពលភាពទម្រង់មានសម្រាប់ការគ្រប់គ្រងទម្រង់ផ្ទាល់ខ្លួនរបស់យើងផងដែរ។
ប្រសិនបើប្លង់ទម្រង់របស់អ្នកអនុញ្ញាត អ្នកអាចប្តូរ .{valid|invalid}-feedback
ថ្នាក់សម្រាប់ .{valid|invalid}-tooltip
ថ្នាក់ ដើម្បីបង្ហាញមតិកែលម្អសុពលភាពនៅក្នុងព័ត៌មានជំនួយដែលមានរចនាប័ទ្ម។ ត្រូវប្រាកដថាមានមាតាបិតា position: relative
នៅជាមួយវាសម្រាប់ការកំណត់ទីតាំងព័ត៌មានជំនួយ។ ក្នុងឧទាហរណ៍ខាងក្រោម ថ្នាក់ជួរឈររបស់យើងមានវារួចហើយ ប៉ុន្តែគម្រោងរបស់អ្នកអាចទាមទារការដំឡើងជំនួស។
សម្រាប់ការកំណត់តាមបំណងកាន់តែច្រើន និងភាពស៊ីសង្វាក់គ្នានៃកម្មវិធីរុករកតាមអ៊ីនធឺណិត សូមប្រើធាតុទម្រង់ផ្ទាល់ខ្លួនទាំងស្រុងរបស់យើង ដើម្បីជំនួសលំនាំដើមរបស់កម្មវិធីរុករកតាមអ៊ីនធឺណិត។ ពួកវាត្រូវបានបង្កើតឡើងនៅលើកំពូលនៃសញ្ញាសម្គាល់ដែលអាចចូលដំណើរការបាន ដូច្នេះពួកវាគឺជាការជំនួសដ៏រឹងមាំសម្រាប់ការគ្រប់គ្រងទម្រង់លំនាំដើមណាមួយ។
ប្រអប់ធីក និងវិទ្យុនីមួយៗត្រូវបាន <div>
ភ្ជាប់ជាមួយនឹងបងប្អូនបង្កើត <span>
ដើម្បីបង្កើតការគ្រប់គ្រងផ្ទាល់ខ្លួនរបស់យើង និង <label>
សម្រាប់អត្ថបទដែលភ្ជាប់មកជាមួយ។ តាមរចនាសម្ព័ន នេះគឺជាវិធីសាស្រ្តដូចគ្នានឹងលំនាំដើមរបស់យើង .form-check
ដែរ។
យើងប្រើឧបករណ៍ជ្រើសរើសបងប្អូនបង្កើត ( ~
) សម្រាប់ <input>
រដ្ឋទាំងអស់របស់យើង—ដូចជា — ដើម្បីធ្វើ :checked
រចនាប័ទ្មឱ្យបានត្រឹមត្រូវនូវសូចនាករទម្រង់ផ្ទាល់ខ្លួនរបស់យើង។ នៅពេលរួមបញ្ចូលគ្នាជាមួយ .custom-control-label
ថ្នាក់ យើងក៏អាចកំណត់រចនាប័ទ្មអត្ថបទសម្រាប់ធាតុនីមួយៗដោយផ្អែកលើ <input>
ស្ថានភាពរបស់។
យើងលាក់លំនាំដើម <input>
ជាមួយ opacity
និងប្រើ .custom-control-label
ដើម្បីបង្កើតសូចនាករទម្រង់ផ្ទាល់ខ្លួនថ្មីនៅកន្លែងរបស់វាជាមួយ ::before
និង ::after
. គួរឲ្យសោកស្ដាយ យើងមិនអាចបង្កើត Custom មួយពី <input>
CSS បានទេ ដោយសារ CSS content
មិនដំណើរការលើធាតុនោះ។
នៅក្នុងស្ថានភាពដែលបានគូស យើងប្រើ រូបតំណាង SVG ដែលបានបង្កប់ base64 ពី Open Iconic ។ នេះផ្តល់ឱ្យយើងនូវការគ្រប់គ្រងដ៏ល្អបំផុតសម្រាប់ការកំណត់រចនាប័ទ្ម និងទីតាំងនៅលើកម្មវិធីរុករកតាមអ៊ីនធឺណិត និងឧបករណ៍។
ប្រអប់ធីកផ្ទាល់ខ្លួនក៏អាចប្រើ :indeterminate
ថ្នាក់ pseudo នៅពេលកំណត់ដោយដៃតាមរយៈ JavaScript (មិនមានគុណលក្ខណៈ HTML សម្រាប់បញ្ជាក់វាទេ)។
ប្រសិនបើអ្នកកំពុងប្រើ jQuery អ្វីមួយដូចនេះគួរតែគ្រប់គ្រាន់៖
ប្រអប់ធីកផ្ទាល់ខ្លួន និងវិទ្យុក៏អាចត្រូវបានបិទផងដែរ។ បន្ថែម disabled
គុណលក្ខណៈប៊ូលីនទៅ <input>
សូចនាករផ្ទាល់ខ្លួន និងការពិពណ៌នាស្លាកនឹងត្រូវបានកំណត់រចនាប័ទ្មដោយស្វ័យប្រវត្តិ។
ម៉ឺនុយ ផ្ទាល់ខ្លួន <select>
ត្រូវការតែថ្នាក់ផ្ទាល់ខ្លួនប៉ុណ្ណោះ .custom-select
ដើម្បីចាប់ផ្តើមរចនាប័ទ្មផ្ទាល់ខ្លួន។ រចនាប័ទ្មផ្ទាល់ខ្លួនត្រូវបានកំណត់ចំពោះ <select>
រូបរាងដំបូងរបស់ ហើយមិនអាចកែប្រែ <option>
s បានទេ ដោយសារការកំណត់របស់កម្មវិធីរុករកតាមអ៊ីនធឺណិត។
អ្នកក៏អាចជ្រើសរើសពីជម្រើសផ្ទាល់ខ្លួនតូច និងធំ ដើម្បីផ្គូផ្គងការបញ្ចូលអត្ថបទដែលមានទំហំស្រដៀងគ្នារបស់យើង។
គុណលក្ខណៈ multiple
ក៏ត្រូវបានគាំទ្រផងដែរ៖
ដូច size
គុណលក្ខណៈ៖
បង្កើត <input type="range">
ការគ្រប់គ្រងផ្ទាល់ខ្លួនជាមួយ .custom-range
. បទ (ផ្ទៃខាងក្រោយ) និងមេដៃ (តម្លៃ) ត្រូវបានកំណត់រចនាប័ទ្មឱ្យបង្ហាញដូចគ្នានៅលើកម្មវិធីរុករក។ ដោយសារមានតែ IE និង Firefox ប៉ុណ្ណោះដែលគាំទ្រ "ការបំពេញ" បទរបស់ពួកគេពីខាងឆ្វេង ឬខាងស្តាំនៃមេដៃជាមធ្យោបាយមួយដើម្បីបង្ហាញពីការវិវឌ្ឍន៍ដោយមើលឃើញ យើងមិនគាំទ្រវាទេ។
ការបញ្ចូលជួរមានតម្លៃបង្កប់ន័យសម្រាប់ min
និង max
— 0
និង 100
រៀងគ្នា។ អ្នកអាចបញ្ជាក់តម្លៃថ្មីសម្រាប់អ្នកដែលប្រើ min
និង max
គុណលក្ខណៈ។
តាមលំនាំដើម ជួរបញ្ចូល "ខ្ទាស់" ទៅតម្លៃចំនួនគត់។ ដើម្បីផ្លាស់ប្តូរវា អ្នកអាចបញ្ជាក់ step
តម្លៃមួយ។ ក្នុងឧទាហរណ៍ខាងក្រោម យើងបង្កើនចំនួនជំហានពីរដងដោយប្រើ step="0.5"
.
ការបញ្ចូលឯកសារគឺភាគច្រើនបំផុតនៃក្រុម ហើយទាមទារ JavaScript បន្ថែមប្រសិនបើអ្នកចង់ភ្ជាប់ពួកវាជាមួយមុខងារ ជ្រើសរើសឯកសារ… និងអត្ថបទឈ្មោះឯកសារដែលបានជ្រើសរើស។
យើងលាក់ឯកសារលំនាំដើម <input>
តាមរយៈ opacity
ហើយជំនួសឲ្យរចនាប័ទ្ម <label>
. ប៊ូតុងត្រូវបានបង្កើតនិងដាក់ទីតាំងជាមួយ ::after
. ជាចុងក្រោយ យើងប្រកាស a width
និង height
នៅលើ <input>
សម្រាប់គម្លាតត្រឹមត្រូវសម្រាប់មាតិកាជុំវិញ។
ការបកប្រែ ឬប្ដូរខ្សែអក្សរតាមបំណង
ថ្នាក់ :lang()
pseudo-class ត្រូវបានប្រើដើម្បីអនុញ្ញាតឱ្យបកប្រែអត្ថបទ "រកមើល" ទៅជាភាសាផ្សេងទៀត។ បដិសេធ ឬបន្ថែមធាតុទៅ $custom-file-text
អថេរ Sass ជាមួយនឹង ស្លាកភាសា ដែលពាក់ព័ន្ធ និងខ្សែអក្សរដែលបានធ្វើមូលដ្ឋានីយកម្ម។ ខ្សែអក្សរអង់គ្លេសអាចត្រូវបានប្ដូរតាមបំណងតាមរបៀបដូចគ្នា។ ឧទាហរណ៍ នេះជារបៀបដែលមនុស្សម្នាក់អាចបន្ថែមការបកប្រែភាសាអេស្ប៉ាញ (កូដភាសាអេស្ប៉ាញគឺ es
):
នេះជា lang(es)
សកម្មភាពលើការបញ្ចូលឯកសារផ្ទាល់ខ្លួនសម្រាប់ការបកប្រែភាសាអេស្ប៉ាញ៖
អ្នកនឹងត្រូវកំណត់ភាសានៃឯកសាររបស់អ្នក (ឬមែកធាងរងរបស់វា) ឱ្យបានត្រឹមត្រូវ ដើម្បីឱ្យអត្ថបទត្រឹមត្រូវត្រូវបានបង្ហាញ។ នេះអាចត្រូវបានធ្វើដោយប្រើ គុណលក្ខណៈ នៅlang
លើ <html>
ធាតុឬ Content-Language
បឋមកថា HTTP ក្នុងចំណោមវិធីសាស្រ្តផ្សេងទៀត។