Nimûne û rêwerzên karanîna ji bo şêwazên kontrolkirina form, vebijarkên sêwiranê, û hêmanên xwerû yên ji bo afirandina cûrbecûr forman.
Têgihiştinî
Kontrolên forma Bootstrap li ser şêwazên forma me yên Rebooted bi dersan berfireh dibin. Van dersan bikar bînin da ku hûn dîmenên xweyên xwerû hilbijêrin da ku li seranserê gerok û cîhazan danûstendinek domdartir bikin.
Bawer bikin ku hûn li ser hemî têketinan taybetmendiyek guncan bikar bînin type(mînak, emailji bo navnîşana e-nameyê an numberji bo agahdariya jimareyî) da ku ji kontrolên têketina nûtir ên mîna verastkirina e-nameyê, bijartina hejmarê, û hêj bêtir sûd werbigirin.
Li vir mînakek bilez heye ku şêwazên forma Bootstrap nîşan bide. Ji bo belgeyên li ser dersên pêwîst, sêwirana formê, û hêj bêtir bixwînin.
Kontrolên formê
Kontrolên forma nivîsê-wek <input>s, <select>s û <textarea>s- bi polê re têne şêwaz kirin .form-control. Di nav de şêwazên ji bo xuyangkirina gelemperî, rewşa balê, mezinbûn, û hêj bêtir hene.
Ji bo têketinên pelê, ji .form-controlbo biguherînin .form-control-file.
Mezinbûn
Bi karanîna çînên mîna .form-control-lgû bilindahiyan saz bikin .form-control-sm.
Readonly
Taybetmendiya boolean li ser ketinek zêde readonlybikin da ku pêşî li guhertina nirxa têketinê bigirin. Têketinên tenê-xwendin siviktir xuya dikin (mîna têketinên neçalak), lê kursorê standard diparêzin.
Nivîsa sade tenê xwendin
Heke hûn dixwazin <input readonly>hêmanên di forma we de wekî nivîsek sade were şêwazkirin, .form-control-plaintextpolê bikar bînin da ku şêwaza qada forma xwerû jêbirin û marjînal û pêveka rast biparêzin.
Range Inputs
Têketinên rêza gerok ên horizontî bi karanîna .form-control-range.
Checkboxes û radyo
Qutikên kontrolê û radyoyên xwerû bi alîkariya .form-check, çînek yekane ji bo her du celebên têketinê ku layout û tevgera hêmanên wan ên HTML-ê çêtir dike têne çêtir kirin . Qutikên kontrolê ji bo hilbijartina yek an çend vebijarkan di navnîşek de ne, dema ku radyo ji bo hilbijartina yek vebijarkek ji gelekan in.
Qutik û radyoyên neçalak têne piştgirî kirin. Taybetmendî disableddê rengek siviktir bixebitîne da ku bibe alîkar ku rewşa têketinê nîşan bide.
Qutiyên kontrolê û bişkokên radyoyê pejirandina forma HTML-ê piştgirî dikin û etîketên kurt û gihîştî peyda dikin. Bi vî rengî, <input>s û <label>yên me hêmanên xwişk-bira ne ku li hember an <input>di hundurê de ne <label>. Ev hinekî devkîtir e ji ber ku divê hûn diyar bikin idû veqetînin da ku bi û for-yê re têkildar <input>bikin <label>.
Pêşbirk (lihevkirî)
Ji hêla xwerû ve, her jimarek qutiyên kontrolê û radyoyên ku xwişk û birayên yekser in dê bi rengek vertîkal werin berhev kirin û bi guncan ve bi .form-check.
Inline
Qutiyên kontrolê an radyoyan li ser heman rêza horizontî kom bikin û li her yekê zêde .form-check-inlinebikin .form-check.
Bê etîketan
Li têketinên ku .position-staticdi nav .form-checkwan de nivîsa etîketê tune ye zêde bikin. Bînin bîra xwe ku hûn hîn jî ji bo teknolojiyên arîkar hin formek etîketê peyda bikin (mînak, karanîna aria-label).
Rêz
Ji ber ku Bootstrap display: blockû width: 100%hema hema li ser hemî kontrolên forma me bicîh tîne, form dê ji hêla xwerû ve vertîkal werin berhev kirin. Dersên pêvek dikarin werin bikar anîn da ku vê sêwiranê li ser bingeha per-formê biguhezînin.
Koman ava dikin
Çîn .form-groupawayê herî hêsan e ku meriv hin avahî li formayan zêde bike. Ew çînek maqûl peyda dike ku komkirina rast a etîketan, kontrolê, nivîsa alîkariyê ya vebijarkî, û peyamên pejirandina formê teşwîq dike. Ji hêla xwerû ve ew tenê derbas dibe , lê li gorî hewcedariyê margin-bottomşêwazên din hildibijêre . .form-inlineWê bi <fieldset>s, <div>s, an hema hema hêmanek din bikar bînin.
Grid form
Formên tevlihevtir dikarin bi karanîna dersên torê yên me werin çêkirin. Vana ji bo sêwirana formên ku hewceyê pir stûnan, firehiyên cihêreng, û vebijarkên hevrêziyê yên din hewce dikin bikar bînin.
Rêzika formê
Di heman demê de hûn dikarin bi guhertoyek rêzika meya standard a torê ya ku ji .rowbo .form-rowsêwiranên hişktir û kompakttir gemarên stûnê yên xwerû vedigire biguherînin.
Di heman demê de bi pergala torê re sêwiranên tevlihevtir jî têne afirandin.
Forma Horizontal
.rowBi lêzêdekirina polê ji bo avakirina koman û bi karanîna .col-*-*çînan re ji bo diyarkirina firehiya etîket û kontrolên xwe bi tevrê re formên horizontî biafirînin . Jê bawer bin ku hûn li s-yên xwe jî zêde .col-form-labelbikin <label>da ku ew bi kontrolên formên xwe yên têkildar ve bi navendê verastî bin.
Carinan, dibe ku hûn hewce ne ku karûbarên marjînal an peldankê bikar bînin da ku ew hevrêziya bêkêmasî ya ku hûn hewce ne biafirînin. Mînakî, padding-topme etîketa li ser têketina radyoya xweya stêrk jê kir da ku xêza bingehîn a nivîsê çêtir birêkûpêk bike.
Mezinahiya labelê forma Horizontal
Bawer bin ku bikar bînin .col-form-label-sman jî .col-form-label-lgs <label>an <legend>sên xwe rast bişopînin mezinahiya .form-control-lgû .form-control-sm.
Mezinbûna stûnê
Wekî ku di mînakên berê de hate xuyang kirin, pergala meya torê dihêle hûn her jimarek .cols-yê di nav .rowan an de bi cîh bikin .form-row. Ew ê firehiya berdest di navbera xwe de wekhev parve bikin. Di heman demê de hûn dikarin binkeyek stûnên xwe hilbijêrin da ku pir an hindik cîh bigire, dema ku yên mayî yên mayî .colbi heman rengî, bi çînên stûnên taybetî yên mîna .col-7.
Auto-sizing
Mînaka jêrîn karûbarek flexbox bikar tîne da ku naverok vertîkal bike naverok û diguhezîne da .colku .col-autostûnên we tenê bi qasî ku hewce bike cîh digirin. Bi awayek din, stûn li gorî naverokê xwe mezin dike.
Dûv re hûn dikarin wê carek din bi dersên stûnê yên bi pîvan-taybetî re tevlihev bikin.
Dersê bikar bînin .form-inlineda ku rêzek etîketan, kontrolên formê, û bişkokên li ser rêzek yekalî nîşan bidin. Kontrolên formê yên di nav formên hundurîn de ji rewşên wan ên xwerû hinekî cûda dibe.
Kontrol ev in display: flex, ku her cîhê spî yê HTML-ê hilweşîne û destûrê dide te ku hûn bi karûbarên valahî û flexbox re kontrolkirina hevrêziyê peyda bikin .
Kontrol û komên têketinê werdigirin width: autoda ku pêşnumaya Bootstrap bişopînin width: 100%.
Kontrol tenê di dîmenderên ku bi kêmî ve 576 px fireh in de têne xuyang kirin ku ji bo dîtinên teng ên li ser cîhazên mobîl hesab bikin.
Dibe ku hûn hewce ne ku hûn bi destan firehî û lihevhatina kontrolên formên kesane bi karûbarên valahiyê (wek ku li jêr tê xuyang kirin) çareser bikin. Di paşiya paşîn de, pê ewle bin ku hûn her gav <label>bi her formek kontrolê re veşêrin, hetta ku hûn hewce ne ku wê ji mêvanên ne-ekranxwîner bi veşêrin .sr-only.
Kontrolkirin û hilbijarkên forma xwerû jî têne piştgirî kirin.
Alternatîfên etîketên veşartî
Teknolojiyên arîkar ên wekî xwendevanên ekranê dê bi formên we re pirsgirêk derkevin heke hûn ji bo her têketinê etîketek negirin. Ji bo van formên hundurîn, hûn dikarin etîketan bi karanîna .sr-onlypolê veşêrin. Rêbazên din ên alternatîf ên peydakirina nîşanek ji bo teknolojiyên arîkar hene, wek mînak aria-label, aria-labelledbyan titletaybetmendî. Ger yek ji van tune be, dibe ku teknolojiyên arîkar bikar bînin ku placeholdertaybetmendiyê bikar bînin, heke hebe, lê bala xwe bidin ku karanîna placeholderwekî cîhgirek ji bo rêbazên din ên nîşankirinê nayê pêşniyar kirin.
Nivîsara alîkariyê
Nivîsara arîkariya asta blokê di formayan de dikare bi karanîna .form-text(berê wekî .help-blockdi v3 de dihat zanîn) were afirandin. Nivîsara arîkariyê ya hundurîn dikare bi rengek nermî bi karanîna her hêmanek HTML-a hundurîn û çînên karûbar ên mîna .text-muted.
Têkiliya nivîsa alîkariyê bi kontrolên formê re
Nivîsara alîkariyê divê bi eşkere bi forma kontrolê ya ku ew bi karanîna aria-describedbytaybetmendiyê ve girêdayî ye ve girêdayî be. Ev ê piştrast bike ku teknolojiyên arîkar - wek xwendevanên ekranê - dema ku bikarhêner balê dikişîne an têkeve kontrolê dê vê nivîsara alîkariyê ragihîne.
Nivîsara arîkariyê ya li jêr têketinan dikare bi şêwazê .form-text. Ev çîn ji display: blockbo veqetandina hêsan a ji têketinên jorîn hin marjînalek jorîn vedihewîne û lê zêde dike.
Divê şîfreya we ji 8-20 tîpan be, tîp û jimar hebin û valahî, tîpên taybet û emoji nebin.
Nivîsara xêzkirî dikare her hêmanek HTML-a hundurîn a tîpîk bikar bîne (bibe ew <small>, <span>, an tiştek din) ji çînek bikêrhatî wêdetir tiştek tune.
Formên astengdar
disabledTaybetmendiya boolean li ser têketinê zêde bikin da ku pêşî li danûstendinên bikarhêner bigire û wê siviktir xuya bike .
disabledTaybetmendiyê li a zêde bikin <fieldset>da ku hemî kontrolên di hundurê de neçalak bikin.
Bi lengeran hişyar kirin
Bi xwerû, gerok dê hemî kontrolên forma xwemalî ( <input>, <select>û <button>hêmanên) di hundurê yekî de <fieldset disabled>wekî neçalak bihesibînin, û rê li ber danûstendinên klavyeyê û mişkê li ser wan bigire. Lêbelê, heke forma we jî <a ... class="btn btn-*">hêmanan vedihewîne, dê tenê şêwazek ji wan re were dayîn pointer-events: none. Wekî ku di beşa di derbarê rewşa neçalak a ji bo bişkokan de (û bi taybetî di bin-beşa hêmanên ankerê de) hate destnîşan kirin, ev taybetmendiya CSS hîn ne standardkirî ye û di Internet Explorer 10 de bi tevahî nayê piştgirî kirin, û dê rê li ber bikarhênerên klavyeyê negire. dikare van girêdanan bisekine an çalak bike. Ji ber vê yekê ji bo ewle bibin, JavaScript-a xwerû bikar bînin da ku girêdanên weha neçalak bikin.
Lihevhatina cross-browser
Dema ku Bootstrap dê van şêwazan di hemî gerokan de bicîh bîne, Internet Explorer 11 û jêrîn bi tevahî disabledtaybetmendiya li ser a <fieldset>. JavaScript-a xwerû bikar bînin da ku di van gerokan de berhevoka zeviyê neçalak bikin.
Validation
Bi erêkirina forma HTML5-ê ji bikarhênerên xwe re bertekên hêja û çalak peyda bikin - di hemî gerokên me yên piştgirîkirî de hene. Ji bergera erêkirina xwerû ya gerokê hilbijêrin, an jî bi dersên me yên çêkirî û JavaScript-a destpêkê re peyamên xwerû bicîh bînin.
Em naha pêşniyar dikin ku şêwazên pejirandina xwerû bikar bînin, ji ber ku peyamên erêkirina xwerû ya geroka xwemalî bi domdarî di hemî gerokan de ji teknolojiyên arîkar re nayên rûxandin (bi taybetî, Chrome li ser sermaseyê û mobîl).
Çawa dixebite
Li vir çawa pejirandina formê bi Bootstrap re dixebite:
Verastkirina forma HTML-ê bi navgîniya du pseudo-dersên CSS-ê ve tê sepandin, :invalidû :valid. Ew ji bo <input>, <select>, û <textarea>hêmanan derbas dibe.
Bootstrap li çîna dêûbav :invalidû şêwazên ku bi gelemperî li ser tê sepandin vedihewîne . Wekî din, her qada pêdivî ya bê nirx di barkirina rûpelê de nederbasdar xuya dike. Bi vî rengî, hûn dikarin hilbijêrin kengê wan çalak bikin (bi gelemperî piştî ku şandina formê tê ceribandin).:valid.was-validated<form>
Ji bo sifirkirina xuyangê formê (mînak, di rewşa radestkirina forma dînamîkî de ku AJAX bikar tînin), piştî radestkirinê dîsa .was-validatedpolê ji polê derxînin.<form>
Wekî paşveçûn, .is-invalidû .is-validçîn dikarin li şûna pseudo-dersan ji bo pejirandina aliyê serverê werin bikar anîn . Ew hewceyê .was-validatedpola dêûbav ne.
Ji ber astengiyên di çawaniya karkirina CSS de, em nikarin (niha) şêwazên ku <label>di DOM-ê de berî kontrolek formek tê bêyî arîkariya JavaScript-a xwerû bicîh bikin.
Hemî gerokên nûjen piştgirî didin API-ya pejirandina astengiyê , rêzek rêbazên JavaScript-ê ji bo rastkirina kontrolên formê.
Dibe ku peyamên nerînên pêşnumayên gerokê (ji bo her gerokek cihêreng, û bi CSS-ê veneguhêzbar) an şêwazên meya nerînên xwerû yên bi HTML û CSS-a zêde bikar bînin.
setCustomValidityHûn dikarin di JavaScriptê de peyamên derbasdariya xwerû peyda bikin .
Di hişê xwe de, demoyên jêrîn ji bo şêwazên pejirandina forma xwerû, dersên alîgirê serverê yên vebijarkî, û pêşnumayên gerokê binihêrin.
styles Custom
Ji bo peyamên pejirandina forma Bootstrap a xwerû, hûn ê hewce bikin ku novalidatetaybetmendiya boolean li xwe zêde bikin <form>. Ev serişteyên amûra bergera xwerû ya gerokê neçalak dike, lê dîsa jî gihîştina API-yên pejirandina formê di JavaScript de peyda dike. Biceribînin ku forma jêrîn bişînin; JavaScript-a me dê bişkoja şandinê bigire û bertekên xwe ji we re veguhezîne. Dema ku hûn hewl bidin ku radest bikin, hûn ê şêwaz :invalidû :validşêwazên ku li ser kontrolên forma we hatine bicîh kirin bibînin.
Şêweyên nerînên xwerû rengên xwerû, sînor, şêwazên baldarî û îkonên paşerojê bicîh dikin da ku nerînên çêtir ragihînin. Îkonên paşperdeya ji bo <select>s tenê bi .custom-select, û ne .form-control.
Pêşniyarên gerokê
Ne eleqedar nabin ji peyamên nerînên pejirandî yên xwerû an jî nivîsandina JavaScript-ê ku tevgerên formê biguhezînin? Hemî baş, hûn dikarin pêşnumayên gerokê bikar bînin. Biceribînin ku forma jêrîn bişînin. Bi gerok û OS-ya xwe ve girêdayî, hûn ê şêwazek nerînek hinekî cûda bibînin.
Dema ku ev şêwazên bersivdayînê nekarin bi CSS-ê re şêwaz bikin, hûn dîsa jî dikarin bi JavaScript-ê nivîsa bersivê xweş bikin.
Server aliyê
Em pêşniyar dikin ku erêkirina ji hêla xerîdar ve were bikar anîn, lê heke hûn hewceyê pejirandina ji hêla serverê bikin, hûn dikarin qadên forma nederbasdar û derbasdar bi .is-invalidû destnîşan .is-validbikin. Têbînî ku .invalid-feedbackbi van dersan jî tê piştgirî kirin.
hêmanên piştgirî
Şêweyên erêkirinê ji bo kontrol û pêkhateyên jêrîn ên formê hene:
<input>s û <textarea>s bi (di nav komên têketinê de .form-controlheya yekî ).form-control
<select>s bi .form-controlan.custom-select
.form-checks
.custom-checkboxs û .custom-radios
.custom-file
Tooltips
Ger sêwirana forma we destûrê dide, hûn dikarin .{valid|invalid}-feedbackdersan bi .{valid|invalid}-tooltipdersan biguhezînin da ku bertekên erêkirinê di navgînek şêwazê de nîşan bidin. position: relativeJi bo pozîsyona tooltip bawer bin ku dêûbavek li ser wê hebe. Di mînaka li jêr de, çînên stûna me jixwe vê yekê heye, lê dibe ku projeya we sazkirinek alternatîf hewce bike.
Customizing
Dewletên erêkirinê dikarin bi $form-validation-statesnexşeyê ve bi riya Sass ve bêne xweş kirin. _variables.scssDi pelê me de cih girtiye, ev nexşeya Sass li ser tê xêzkirin da ku dewletên xwerû valid/ invalidpejirandinê çêbike. Di nav de nexşeyek hêlîn heye ku ji bo xweşkirina reng û îkona her dewletê ye. Digel ku ti dewletên din ji hêla gerokan ve nayên piştgirî kirin, yên ku şêwazên xwerû bikar tînin dikarin bi hêsanî bertekên forma tevlihevtir zêde bikin.
form-validation-stateJi kerema xwe bala xwe bidin ku em bêyî guheztina mixin xweşkirina van nirxan pêşniyar nakin .
formên Custom
Ji bo hê bêtir xwerûkirin û domdariya gerokê ya xaça, hêmanên forma meya bi tevahî xwerû bikar bînin da ku li şûna pêşnumayên gerokê biguhezînin. Ew li ser nîşana semantîkî û gihîştî hatine çêkirin, ji ber vê yekê ew ji bo her kontrolek forma xwerû veguherînek zexm in.
Checkboxes û radyo
Her qutiya kontrolê û radyo <input>û <label>hevberdanê di nav de tê pêçan <div>da ku kontrola xweya xwerû biafirîne. Ji hêla strukturî ve, ev heman nêzîkatiya xwerû ya me .form-checkye.
Em hilbijêra xwişk û bira ( ~) ji bo hemî <input>dewletên xwe bikar tînin - mîna - da :checkedku nîşana forma xweya xwerû bi rêkûpêk şêwaz bikin. Dema ku bi .custom-control-labelpolê re were berhev kirin, em dikarin nivîsê ji bo her babetê li ser bingeha <input>'dewletê jî şêwaz bikin.
Em xwerû bi veşêrin û <input>bi opacitykar tînin .custom-control-labelda ku li şûna wê nîşanek forma xwerû ya nû ava bikin bi ::beforeû ::after. Mixabin em nekarin ji tenê yek xwerû ava bikin ji <input>ber ku CSS li contentser wê hêmanê naxebite.
Di dewletên kontrolkirî de, em îkonên SVG-ê yên binavkirî yên base64 ji Open Iconic bikar tînin . Ev ji bo şêwaz û pozîsyona li seranserê gerok û cîhazan kontrola çêtirîn ji me re peyda dike.
Checkboxes
Di heman demê de qutiyên kontrolê yên xwerû dema ku bi destan bi JavaScript-ê ve hatî danîn dikarin çîna pseudo bikar bînin :indeterminate(ji bo diyarkirina wê taybetmendiyek HTML-ê ya berdest tune).
Heke hûn jQuery bikar tînin, tiştek mîna vê bes e:
Radios
Inline
Bêmecel
Qutiyên kontrolê yên xwerû û radyo jî dikarin bêne asteng kirin. Taybetmendiya boolean li ser zêde disabledbikin û nîşana xwerû <input>û ravekirina labelê dê bixweber were şêwaz kirin.
Switches
Veguhezek nîşana qutiyek kontrolê ya xwerû heye lê .custom-switchpolê bikar tîne da ku veguhezek veguhezîne. Switches jî disabledtaybetmendiyê piştgirî dikin.
Menu hilbijêre
Pêşekên <select>xwerû tenê ji çînek xwerû hewce ne, .custom-selectda ku şêwazên xwerû bişopînin. Şêweyên <select>xwerû bi xuyangiya destpêkê ya '' ve têne sînorkirin û <option>ji ber sînorkirinên gerokê nikarin s-yê biguherînin.
Her weha hûn dikarin ji vebijarkên xwerû yên piçûk û mezin hilbijêrin da ku bi têketina nivîsa me ya bi pîvana wekhev re têkildar bin.
The multiple attribute is also supported:
As is the size attribute:
Range
Create custom <input type="range"> controls with .custom-range. The track (the background) and thumb (the value) are both styled to appear the same across browsers. As only IE and Firefox support “filling” their track from the left or right of the thumb as a means to visually indicate progress, we do not currently support it.
Range inputs have implicit values for min and max—0 and 100, respectively. You may specify new values for those using the min and max attributes.
By default, range inputs “snap” to integer values. To change this, you can specify a step value. In the example below, we double the number of steps by using step="0.5".
File browser
The recommended plugin to animate custom file input: bs-custom-file-input, that’s what we are using currently here in our docs.
The file input is the most gnarly of the bunch and requires additional JavaScript if you’d like to hook them up with functional Choose file… and selected file name text.
We hide the default file <input> via opacity and instead style the <label>. The button is generated and positioned with ::after. Lastly, we declare a width and height on the <input> for proper spacing for surrounding content.
Translating or customizing the strings with SCSS
The :lang() pseudo-class is used to allow for translation of the “Browse” text into other languages. Override or add entries to the $custom-file-text Sass variable with the relevant language tag and localized strings. The English strings can be customized the same way. For example, here’s how one might add a Spanish translation (Spanish’s language code is es):
Here’s lang(es) in action on the custom file input for a Spanish translation:
You’ll need to set the language of your document (or subtree thereof) correctly in order for the correct text to be shown. This can be done using the lang attribute on the <html> element or the Content-Language HTTP header, among other methods.
Translating or customizing the strings with HTML
Bootstrap di heman demê de rêyek ji bo wergerandina nivîsa "Browse" di HTML-ê de bi data-browsetaybetmendiya ku dikare li etîketa têketina xwerû were zêdekirin peyda dike (mînakek bi Hollandî):