in English

Шаклҳо

Намунаҳо ва дастурҳои истифода барои услубҳои идоракунии шакл, имконоти тарҳбандӣ ва ҷузъҳои фармоишӣ барои эҷоди шаклҳои васеи шакл.

Барраси

Назорати формаи Bootstrap дар сабкҳои шакли Rebooted мо бо синфҳо васеъ мешавад. Аз ин синфҳо истифода баред, то ба намоишҳои фармоишии онҳо барои намоиши мувофиқтар дар байни браузерҳо ва дастгоҳҳо дохил шавед.

Боварӣ ҳосил кунед, ки typeатрибути мувофиқро дар ҳама вурудот (масалан, emailбарои суроғаи почтаи электронӣ ё numberмаълумоти рақамӣ) истифода баред, то аз назорати навтари вуруд ба монанди тасдиқи почтаи электронӣ, интихоби рақам ва ғайра истифода баред.

Ин як мисоли фаврӣ барои нишон додани услубҳои формати Bootstrap аст. Барои хондани ҳуҷҷатҳо дар бораи синфҳои зарурӣ, тарҳбандии шакл ва ғайра.

Мо ҳеҷ гоҳ почтаи электронии шуморо бо ягон каси дигар мубодила намекунем.
<form>
  <div class="form-group">
    <label for="exampleInputEmail1">Email address</label>
    <input type="email" class="form-control" id="exampleInputEmail1" aria-describedby="emailHelp">
    <small id="emailHelp" class="form-text text-muted">We'll never share your email with anyone else.</small>
  </div>
  <div class="form-group">
    <label for="exampleInputPassword1">Password</label>
    <input type="password" class="form-control" id="exampleInputPassword1">
  </div>
  <div class="form-group form-check">
    <input type="checkbox" class="form-check-input" id="exampleCheck1">
    <label class="form-check-label" for="exampleCheck1">Check me out</label>
  </div>
  <button type="submit" class="btn btn-primary">Submit</button>
</form>

Назорати шакл

Назорати шакли матнӣ - ба монанди <input>s, <select>s ва <textarea>s - бо .form-controlсинф услуб карда мешаванд. Сабкҳо барои намуди умумӣ, ҳолати фокус, андоза ва ғайра дохил карда шудаанд.

Боварӣ ҳосил кунед, ки шаклҳои фармоишии моро барои сабки минбаъда омӯзед <select>.

<form>
  <div class="form-group">
    <label for="exampleFormControlInput1">Email address</label>
    <input type="email" class="form-control" id="exampleFormControlInput1" placeholder="[email protected]">
  </div>
  <div class="form-group">
    <label for="exampleFormControlSelect1">Example select</label>
    <select class="form-control" id="exampleFormControlSelect1">
      <option>1</option>
      <option>2</option>
      <option>3</option>
      <option>4</option>
      <option>5</option>
    </select>
  </div>
  <div class="form-group">
    <label for="exampleFormControlSelect2">Example multiple select</label>
    <select multiple class="form-control" id="exampleFormControlSelect2">
      <option>1</option>
      <option>2</option>
      <option>3</option>
      <option>4</option>
      <option>5</option>
    </select>
  </div>
  <div class="form-group">
    <label for="exampleFormControlTextarea1">Example textarea</label>
    <textarea class="form-control" id="exampleFormControlTextarea1" rows="3"></textarea>
  </div>
</form>

Барои вурудоти файл, иваз кунед .form-controlбарои .form-control-file.

<form>
  <div class="form-group">
    <label for="exampleFormControlFile1">Example file input</label>
    <input type="file" class="form-control-file" id="exampleFormControlFile1">
  </div>
</form>

Андоза

.form-control-lgБо истифода аз синфҳои монанди ва баландӣ муқаррар .form-control-smкунед.

<input class="form-control form-control-lg" type="text" placeholder=".form-control-lg">
<input class="form-control" type="text" placeholder="Default input">
<input class="form-control form-control-sm" type="text" placeholder=".form-control-sm">
<select class="form-control form-control-lg">
  <option>Large select</option>
</select>
<select class="form-control">
  <option>Default select</option>
</select>
<select class="form-control form-control-sm">
  <option>Small select</option>
</select>

Танҳо хондан

Барои readonlyпешгирӣ кардани тағирёбии арзиши вуруд аттрибути логикиро ба вуруд илова кунед. Вурудҳои танҳо барои хондан сабуктар ба назар мерасанд (мисли вурудҳои ғайрифаъол), аммо курсори стандартиро нигоҳ медоранд.

<input class="form-control" type="text" placeholder="Readonly input here..." readonly>

Матни оддӣ танҳо хондан

Агар шумо хоҳед, ки <input readonly>дар шакли худ унсурҳо ҳамчун матни оддӣ дошта бошанд, .form-control-plaintextсинфро барои нест кардани услуби майдони формаи пешфарз истифода баред ва ҳошия ва пуркунии дурустро нигоҳ доред.

<form>
  <div class="form-group row">
    <label for="staticEmail" class="col-sm-2 col-form-label">Email</label>
    <div class="col-sm-10">
      <input type="text" readonly class="form-control-plaintext" id="staticEmail" value="[email protected]">
    </div>
  </div>
  <div class="form-group row">
    <label for="inputPassword" class="col-sm-2 col-form-label">Password</label>
    <div class="col-sm-10">
      <input type="password" class="form-control" id="inputPassword">
    </div>
  </div>
</form>
<form class="form-inline">
  <div class="form-group mb-2">
    <label for="staticEmail2" class="sr-only">Email</label>
    <input type="text" readonly class="form-control-plaintext" id="staticEmail2" value="[email protected]">
  </div>
  <div class="form-group mx-sm-3 mb-2">
    <label for="inputPassword2" class="sr-only">Password</label>
    <input type="password" class="form-control" id="inputPassword2" placeholder="Password">
  </div>
  <button type="submit" class="btn btn-primary mb-2">Confirm identity</button>
</form>

Вурудҳои диапазон

Бо истифода аз вурудҳои диапазони ба таври уфуқӣ ҳаракатшавандаро танзим .form-control-rangeкунед.

<form>
  <div class="form-group">
    <label for="formControlRange">Example Range input</label>
    <input type="range" class="form-control-range" id="formControlRange">
  </div>
</form>

Санҷишҳо ва радиоҳо

Қуттиҳои пешфарз ва радиоҳо бо ёрии .form-checkяк синфи ягона барои ҳарду намуди вуруд такмил дода мешаванд, ки тарҳ ва рафтори унсурҳои HTML-и онҳоро беҳтар мекунад . Қуттиҳои қайдҳо барои интихоби як ё якчанд вариант дар рӯйхат мебошанд, дар ҳоле ки радиоҳо барои интихоби як вариант аз бисёриҳо мебошанд.

Қуттиҳои ғайрифаъол ва радиоҳо дастгирӣ карда мешаванд. Аттрибут disabledранги сабуктареро ба кор мебарад, то ҳолати вурудро нишон диҳад.

Қуттиҳои қайд ва тугмаҳои радио тасдиқи шаклро дар асоси HTML дастгирӣ мекунанд ва тамғакоғазҳои мухтасар ва дастрасро таъмин мекунанд. Ҳамин тариқ, <input>s ва <label>s-и мо бар хилофи як <input>дар дохили <label>. Ин каме мухтасартар аст, зеро шумо бояд атрибутҳо idва сифатҳоро барои иртибот бо ва .for<input><label>

Пешфарз (сӯхташуда)

Бо нобаёнӣ, ҳама гуна шумораи қуттиҳои қайд ва радиоҳо, ки бародари бевосита мебошанд, амудӣ ҷойгир карда мешаванд ва бо фосилаи мувофиқ ҷойгир карда мешаванд .form-check.

<div class="form-check">
  <input class="form-check-input" type="checkbox" value="" id="defaultCheck1">
  <label class="form-check-label" for="defaultCheck1">
    Default checkbox
  </label>
</div>
<div class="form-check">
  <input class="form-check-input" type="checkbox" value="" id="defaultCheck2" disabled>
  <label class="form-check-label" for="defaultCheck2">
    Disabled checkbox
  </label>
</div>
<div class="form-check">
  <input class="form-check-input" type="radio" name="exampleRadios" id="exampleRadios1" value="option1" checked>
  <label class="form-check-label" for="exampleRadios1">
    Default radio
  </label>
</div>
<div class="form-check">
  <input class="form-check-input" type="radio" name="exampleRadios" id="exampleRadios2" value="option2">
  <label class="form-check-label" for="exampleRadios2">
    Second default radio
  </label>
</div>
<div class="form-check">
  <input class="form-check-input" type="radio" name="exampleRadios" id="exampleRadios3" value="option3" disabled>
  <label class="form-check-label" for="exampleRadios3">
    Disabled radio
  </label>
</div>

Дар мувофиқат

Қуттиҳо ё радиоҳоро дар як сатри уфуқӣ бо илова кардани .form-check-inlineягон .form-check.

<div class="form-check form-check-inline">
  <input class="form-check-input" type="checkbox" id="inlineCheckbox1" value="option1">
  <label class="form-check-label" for="inlineCheckbox1">1</label>
</div>
<div class="form-check form-check-inline">
  <input class="form-check-input" type="checkbox" id="inlineCheckbox2" value="option2">
  <label class="form-check-label" for="inlineCheckbox2">2</label>
</div>
<div class="form-check form-check-inline">
  <input class="form-check-input" type="checkbox" id="inlineCheckbox3" value="option3" disabled>
  <label class="form-check-label" for="inlineCheckbox3">3 (disabled)</label>
</div>
<div class="form-check form-check-inline">
  <input class="form-check-input" type="radio" name="inlineRadioOptions" id="inlineRadio1" value="option1">
  <label class="form-check-label" for="inlineRadio1">1</label>
</div>
<div class="form-check form-check-inline">
  <input class="form-check-input" type="radio" name="inlineRadioOptions" id="inlineRadio2" value="option2">
  <label class="form-check-label" for="inlineRadio2">2</label>
</div>
<div class="form-check form-check-inline">
  <input class="form-check-input" type="radio" name="inlineRadioOptions" id="inlineRadio3" value="option3" disabled>
  <label class="form-check-label" for="inlineRadio3">3 (disabled)</label>
</div>

Бе нишонаҳо

Ба .position-staticвурудоти дар дохили .form-checkонҳо матни тамғакоғазӣ надошта илова кунед. Дар хотир доред, ки то ҳол ягон шакли номи дастрасро барои технологияҳои ёрирасон пешниҳод кунед (масалан, бо истифода аз aria-label).

<div class="form-check">
  <input class="form-check-input position-static" type="checkbox" id="blankCheckbox" value="option1" aria-label="...">
</div>
<div class="form-check">
  <input class="form-check-input position-static" type="radio" name="blankRadio" id="blankRadio1" value="option1" aria-label="...">
</div>

Тарҳ

Азбаски Bootstrap display: blockва width: 100%тақрибан ба ҳамаи идораҳои формаи мо татбиқ мешавад, формаҳо ба таври нобаёнӣ амудӣ ҷамъ мешаванд. Синфҳои иловагӣ метавонанд барои тағир додани ин тарҳ дар асоси шакл истифода шаванд.

Гурӯҳҳо ташкил кунед

Синф роҳи .form-groupосонтарини илова кардани баъзе сохтор ба формаҳо мебошад. Он як синфи фасеҳро таъмин мекунад, ки гурӯҳбандии дурусти тамғакоғазҳо, назоратҳо, матни ёрии ихтиёрӣ ва паёмнависии тасдиқи формаро ташвиқ мекунад. Бо нобаёнӣ он танҳо амал margin-bottomмекунад, аммо дар .form-inlineҳолати зарурӣ услубҳои иловагиро интихоб мекунад. Онро бо <fieldset>s, <div>s ё қариб ягон унсури дигар истифода баред.

<form>
  <div class="form-group">
    <label for="formGroupExampleInput">Example label</label>
    <input type="text" class="form-control" id="formGroupExampleInput" placeholder="Example input placeholder">
  </div>
  <div class="form-group">
    <label for="formGroupExampleInput2">Another label</label>
    <input type="text" class="form-control" id="formGroupExampleInput2" placeholder="Another input placeholder">
  </div>
</form>

Шабакаи форма

Бо истифода аз синфҳои шабакаи мо шаклҳои мураккабтар сохтан мумкин аст. Инҳоро барои тарҳбандиҳои шакл истифода баред, ки сутунҳои сершумор, паҳнои гуногун ва имконоти ҳамоҳангсозии иловагиро талаб мекунанд.

<form>
  <div class="row">
    <div class="col">
      <input type="text" class="form-control" placeholder="First name">
    </div>
    <div class="col">
      <input type="text" class="form-control" placeholder="Last name">
    </div>
  </div>
</form>

Сатри форма

Шумо инчунин метавонед бо як варианти сатри шабакаи стандартии мо иваз .rowкунед .form-row, ки ҷӯйборҳои сутуни пешфарзро барои тарҳбандиҳои сахттар ва паймонтар аз байн мебарад.

<form>
  <div class="form-row">
    <div class="col">
      <input type="text" class="form-control" placeholder="First name">
    </div>
    <div class="col">
      <input type="text" class="form-control" placeholder="Last name">
    </div>
  </div>
</form>

Тарҳҳои мураккабтарро инчунин бо системаи шабакавӣ сохтан мумкин аст.

<form>
  <div class="form-row">
    <div class="form-group col-md-6">
      <label for="inputEmail4">Email</label>
      <input type="email" class="form-control" id="inputEmail4">
    </div>
    <div class="form-group col-md-6">
      <label for="inputPassword4">Password</label>
      <input type="password" class="form-control" id="inputPassword4">
    </div>
  </div>
  <div class="form-group">
    <label for="inputAddress">Address</label>
    <input type="text" class="form-control" id="inputAddress" placeholder="1234 Main St">
  </div>
  <div class="form-group">
    <label for="inputAddress2">Address 2</label>
    <input type="text" class="form-control" id="inputAddress2" placeholder="Apartment, studio, or floor">
  </div>
  <div class="form-row">
    <div class="form-group col-md-6">
      <label for="inputCity">City</label>
      <input type="text" class="form-control" id="inputCity">
    </div>
    <div class="form-group col-md-4">
      <label for="inputState">State</label>
      <select id="inputState" class="form-control">
        <option selected>Choose...</option>
        <option>...</option>
      </select>
    </div>
    <div class="form-group col-md-2">
      <label for="inputZip">Zip</label>
      <input type="text" class="form-control" id="inputZip">
    </div>
  </div>
  <div class="form-group">
    <div class="form-check">
      <input class="form-check-input" type="checkbox" id="gridCheck">
      <label class="form-check-label" for="gridCheck">
        Check me out
      </label>
    </div>
  </div>
  <button type="submit" class="btn btn-primary">Sign in</button>
</form>

Шакли уфуқӣ

.rowТавассути илова кардани синф барои ташкили гурӯҳҳо ва истифодаи .col-*-*синфҳо барои муайян кардани паҳнои тамғакоғазҳо ва назорати худ, шаклҳои уфуқӣ бо шабака эҷод кунед . Боварӣ ҳосил кунед, ки ба s-и худ низ илова .col-form-labelкунед <label>, то онҳо амудӣ бо назорати шакли алоқаманди худ мутамарказ шаванд.

Баъзан, ба шумо лозим меояд, ки аз маржа ё утилитаҳои пуркунӣ истифода баред, то он ҳамоҳангсозии комилеро, ки ба шумо лозим аст, эҷод кунед. Масалан, мо padding-topтамғаи вурудоти радиоии stacked-ро хориҷ кардем, то хатти асоси матнро беҳтар мувофиқ созем.

Радиохо
<form>
  <div class="form-group row">
    <label for="inputEmail3" class="col-sm-2 col-form-label">Email</label>
    <div class="col-sm-10">
      <input type="email" class="form-control" id="inputEmail3">
    </div>
  </div>
  <div class="form-group row">
    <label for="inputPassword3" class="col-sm-2 col-form-label">Password</label>
    <div class="col-sm-10">
      <input type="password" class="form-control" id="inputPassword3">
    </div>
  </div>
  <fieldset class="form-group row">
    <legend class="col-form-label col-sm-2 float-sm-left pt-0">Radios</legend>
    <div class="col-sm-10">
      <div class="form-check">
        <input class="form-check-input" type="radio" name="gridRadios" id="gridRadios1" value="option1" checked>
        <label class="form-check-label" for="gridRadios1">
          First radio
        </label>
      </div>
      <div class="form-check">
        <input class="form-check-input" type="radio" name="gridRadios" id="gridRadios2" value="option2">
        <label class="form-check-label" for="gridRadios2">
          Second radio
        </label>
      </div>
      <div class="form-check disabled">
        <input class="form-check-input" type="radio" name="gridRadios" id="gridRadios3" value="option3" disabled>
        <label class="form-check-label" for="gridRadios3">
          Third disabled radio
        </label>
      </div>
    </div>
  </fieldset>
  <div class="form-group row">
    <div class="col-sm-10 offset-sm-2">
      <div class="form-check">
        <input class="form-check-input" type="checkbox" id="gridCheck1">
        <label class="form-check-label" for="gridCheck1">
          Example checkbox
        </label>
      </div>
    </div>
  </div>
  <div class="form-group row">
    <div class="col-sm-10">
      <button type="submit" class="btn btn-primary">Sign in</button>
    </div>
  </div>
</form>
Андозаи тамғаи шакли уфуқӣ

Ҳатман истифода баред .col-form-label-smё .col-form-label-lgба <label>s ё <legend>s худ барои дуруст риоя кардани андозаи .form-control-lgва .form-control-sm.

<form>
  <div class="form-group row">
    <label for="colFormLabelSm" class="col-sm-2 col-form-label col-form-label-sm">Email</label>
    <div class="col-sm-10">
      <input type="email" class="form-control form-control-sm" id="colFormLabelSm" placeholder="col-form-label-sm">
    </div>
  </div>
  <div class="form-group row">
    <label for="colFormLabel" class="col-sm-2 col-form-label">Email</label>
    <div class="col-sm-10">
      <input type="email" class="form-control" id="colFormLabel" placeholder="col-form-label">
    </div>
  </div>
  <div class="form-group row">
    <label for="colFormLabelLg" class="col-sm-2 col-form-label col-form-label-lg">Email</label>
    <div class="col-sm-10">
      <input type="email" class="form-control form-control-lg" id="colFormLabelLg" placeholder="col-form-label-lg">
    </div>
  </div>
</form>

Андозаи сутун

Тавре ки дар мисолҳои қаблӣ нишон дода шудааст, системаи шабакаи мо ба шумо имкон медиҳад, .colки дар дохили як .rowё .form-row. Онҳо паҳнои дастрасро дар байни онҳо баробар тақсим мекунанд. Шумо инчунин метавонед як зермаҷмӯи сутунҳои худро интихоб кунед, то ҷойгоҳи бештар ё камтарро ишғол кунад, дар ҳоле ки боқимондаҳо .colбоқимондаро бо синфҳои мушаххаси сутунҳо ба монанди .col-7.

<form>
  <div class="form-row">
    <div class="col-7">
      <input type="text" class="form-control" placeholder="City">
    </div>
    <div class="col">
      <input type="text" class="form-control" placeholder="State">
    </div>
    <div class="col">
      <input type="text" class="form-control" placeholder="Zip">
    </div>
  </div>
</form>

Андозаи худкор

Намунаи дар поён овардашуда як утилитаи flexbox-ро барои ба таври амудӣ марказонидани мундариҷа ва тағирот истифода мебарад .col, .col-autoто сутунҳои шумо танҳо ҳамон қадар ҷойро ишғол кунанд. Ба таври дигар гӯем, андозаи сутун дар асоси мундариҷа.

@
<form>
  <div class="form-row align-items-center">
    <div class="col-auto">
      <label class="sr-only" for="inlineFormInput">Name</label>
      <input type="text" class="form-control mb-2" id="inlineFormInput" placeholder="Jane Doe">
    </div>
    <div class="col-auto">
      <label class="sr-only" for="inlineFormInputGroup">Username</label>
      <div class="input-group mb-2">
        <div class="input-group-prepend">
          <div class="input-group-text">@</div>
        </div>
        <input type="text" class="form-control" id="inlineFormInputGroup" placeholder="Username">
      </div>
    </div>
    <div class="col-auto">
      <div class="form-check mb-2">
        <input class="form-check-input" type="checkbox" id="autoSizingCheck">
        <label class="form-check-label" for="autoSizingCheck">
          Remember me
        </label>
      </div>
    </div>
    <div class="col-auto">
      <button type="submit" class="btn btn-primary mb-2">Submit</button>
    </div>
  </div>
</form>

Пас шумо метавонед онро бори дигар бо синфҳои сутуни мушаххаси андоза ремикс кунед.

@
<form>
  <div class="form-row align-items-center">
    <div class="col-sm-3 my-1">
      <label class="sr-only" for="inlineFormInputName">Name</label>
      <input type="text" class="form-control" id="inlineFormInputName" placeholder="Jane Doe">
    </div>
    <div class="col-sm-3 my-1">
      <label class="sr-only" for="inlineFormInputGroupUsername">Username</label>
      <div class="input-group">
        <div class="input-group-prepend">
          <div class="input-group-text">@</div>
        </div>
        <input type="text" class="form-control" id="inlineFormInputGroupUsername" placeholder="Username">
      </div>
    </div>
    <div class="col-auto my-1">
      <div class="form-check">
        <input class="form-check-input" type="checkbox" id="autoSizingCheck2">
        <label class="form-check-label" for="autoSizingCheck2">
          Remember me
        </label>
      </div>
    </div>
    <div class="col-auto my-1">
      <button type="submit" class="btn btn-primary">Submit</button>
    </div>
  </div>
</form>

Ва албатта , назорати шакли фармоишӣ дастгирӣ карда мешавад.

<form>
  <div class="form-row align-items-center">
    <div class="col-auto my-1">
      <label class="mr-sm-2 sr-only" for="inlineFormCustomSelect">Preference</label>
      <select class="custom-select mr-sm-2" id="inlineFormCustomSelect">
        <option selected>Choose...</option>
        <option value="1">One</option>
        <option value="2">Two</option>
        <option value="3">Three</option>
      </select>
    </div>
    <div class="col-auto my-1">
      <div class="custom-control custom-checkbox mr-sm-2">
        <input type="checkbox" class="custom-control-input" id="customControlAutosizing">
        <label class="custom-control-label" for="customControlAutosizing">Remember my preference</label>
      </div>
    </div>
    <div class="col-auto my-1">
      <button type="submit" class="btn btn-primary">Submit</button>
    </div>
  </div>
</form>

Шаклҳои inline

Синфро .form-inlineбарои намоиш додани як қатор тамғакоғазҳо, идоракунии шакл ва тугмаҳо дар як сатри уфуқӣ истифода баред. Назорати форма дар дохили шаклҳо аз ҳолати пешфарзашон каме фарқ мекунад.

  • Назоратҳо инҳоянд display: flex, ки ҳама гуна фазои сафеди HTML-ро вайрон мекунанд ва ба шумо имкон медиҳанд, ки назорати ҳамоҳангиро бо фосила ва утилитаҳои flexbox таъмин кунед .
  • Назоратҳо ва гурӯҳҳои воридотӣ width: autoбарои бекор кардани пешфарзи Bootstrap width: 100%мегиранд.
  • Назоратҳо танҳо дар сатри намоишӣ пайдо мешаванд, ки паҳнои на камтар аз 576 пиксел доранд , то барои намоишгоҳҳои танг дар дастгоҳҳои мобилӣ ҳисоб карда шаванд.

Шояд ба шумо лозим ояд, ки паҳнӣ ва ҳамоҳангии идоракунии формаҳои инфиродӣ бо утилитаҳои фосилавӣ (тавре ки дар зер нишон дода шудааст) дастӣ ҳал карда шавад. Ниҳоят, ҳатман боварӣ ҳосил кунед, ки ҳамеша <label>бо ҳар як идоракунии форма як-ро дар бар гиред, ҳатто агар ба шумо лозим бошад, ки онро аз меҳмонони ғайриэкранӣ бо .sr-only.

@
<form class="form-inline">
  <label class="sr-only" for="inlineFormInputName2">Name</label>
  <input type="text" class="form-control mb-2 mr-sm-2" id="inlineFormInputName2" placeholder="Jane Doe">

  <label class="sr-only" for="inlineFormInputGroupUsername2">Username</label>
  <div class="input-group mb-2 mr-sm-2">
    <div class="input-group-prepend">
      <div class="input-group-text">@</div>
    </div>
    <input type="text" class="form-control" id="inlineFormInputGroupUsername2" placeholder="Username">
  </div>

  <div class="form-check mb-2 mr-sm-2">
    <input class="form-check-input" type="checkbox" id="inlineFormCheck">
    <label class="form-check-label" for="inlineFormCheck">
      Remember me
    </label>
  </div>

  <button type="submit" class="btn btn-primary mb-2">Submit</button>
</form>

Назоратҳо ва интихобҳои шакли фармоишӣ низ дастгирӣ мешаванд.

<form class="form-inline">
  <label class="my-1 mr-2" for="inlineFormCustomSelectPref">Preference</label>
  <select class="custom-select my-1 mr-sm-2" id="inlineFormCustomSelectPref">
    <option selected>Choose...</option>
    <option value="1">One</option>
    <option value="2">Two</option>
    <option value="3">Three</option>
  </select>

  <div class="custom-control custom-checkbox my-1 mr-sm-2">
    <input type="checkbox" class="custom-control-input" id="customControlInline">
    <label class="custom-control-label" for="customControlInline">Remember my preference</label>
  </div>

  <button type="submit" class="btn btn-primary my-1">Submit</button>
</form>
Алтернативаҳо ба тамғакоғазҳои пинҳон

Технологияҳои ёрирасон ба монанди хонандагони экран бо шаклҳои шумо мушкилот хоҳанд дошт, агар шумо барои ҳар як вуруд тамға нагузоред. Барои ин шаклҳои сатрӣ, шумо метавонед тамғаҳоро бо истифода аз .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 аломат дошта бошад, дорои ҳарфҳо ва рақамҳо бошад ва набояд фосила, аломатҳои махсус ё эмодзи дошта бошад.
<label for="inputPassword5">Password</label>
<input type="password" id="inputPassword5" class="form-control" aria-describedby="passwordHelpBlock">
<small id="passwordHelpBlock" class="form-text text-muted">
  Your password must be 8-20 characters long, contain letters and numbers, and must not contain spaces, special characters, or emoji.
</small>

Матни дарунсохт метавонад ҳама гуна унсури муқаррарии HTML-ро (хоҳ он <small>, <span>, хоҳ чизи дигар) истифода барад, ки ғайр аз синфи утилита дигар чизе набошад.

Дарозии он бояд 8-20 аломат бошад.
<form class="form-inline">
  <div class="form-group">
    <label for="inputPassword6">Password</label>
    <input type="password" id="inputPassword6" class="form-control mx-sm-3" aria-describedby="passwordHelpInline">
    <small id="passwordHelpInline" class="text-muted">
      Must be 8-20 characters long.
    </small>
  </div>
</form>

Шаклҳои ғайрифаъол

Барои disabledпешгирӣ кардани муоширати корбарон ва сабуктар зоҳир кардани он аттрибутҳои логикиро ба вуруд илова кунед.

<input class="form-control" id="disabledInput" type="text" placeholder="Disabled input here..." disabled>

Барои ғайрифаъол кардани ҳамаи идораҳо дар дохили он disabledаттрибутиро ба a илова кунед.<fieldset>

Намунаи маҷмӯи майдонҳои ғайрифаъол
<form>
  <fieldset disabled>
    <legend>Disabled fieldset example</legend>
    <div class="form-group">
      <label for="disabledTextInput">Disabled input</label>
      <input type="text" id="disabledTextInput" class="form-control" placeholder="Disabled input">
    </div>
    <div class="form-group">
      <label for="disabledSelect">Disabled select menu</label>
      <select id="disabledSelect" class="form-control">
        <option>Disabled select</option>
      </select>
    </div>
    <div class="form-group">
      <div class="form-check">
        <input class="form-check-input" type="checkbox" id="disabledFieldsetCheck" disabled>
        <label class="form-check-label" for="disabledFieldsetCheck">
          Can't check this
        </label>
      </div>
    </div>
    <button type="submit" class="btn btn-primary">Submit</button>
  </fieldset>
</form>
Огоҳӣ бо лангар

Браузерҳо ҳамаи назорати шаклҳои модариро ( <input>, <select>, ва <button>унсурҳои) дар дохили a <fieldset disabled>ҳамчун ғайрифаъол ҳисоб мекунанд ва ҳамкории клавиатура ва мушро дар онҳо пешгирӣ мекунанд.

Аммо, агар формаи шумо инчунин дорои унсурҳои фармоишии тугмачаҳо ба монанди <a ... class="btn btn-*">, ба онҳо танҳо услуби pointer-events: none. Тавре ки дар бахш дар бораи ҳолати ғайрифаъол барои тугмаҳо (ва махсусан дар зербахш барои унсурҳои лангар) қайд карда шуд, ин амволи CSS ҳанӯз стандартизатсия нашудааст ва дар Internet Explorer 10 пурра дастгирӣ намешавад. бо истифода аз клавиатура мутамарказ ва фаъол. Шумо бояд ин идораҳоро тавассути илова ба таври дастӣ тағир диҳед tabindex="-1", то онҳо аз гирифтани фокус пешгирӣ кунед ва aria-disabled="disabled"ҳолати онҳоро ба технологияҳои ёрирасон сигнал диҳед.

Мутобиқати кросс-браузер

Гарчанде ки Bootstrap ин услубҳоро дар ҳама браузерҳо татбиқ мекунад, Internet Explorer 11 ва поёнтар ин disabledатрибутро дар <fieldset>. Барои хомӯш кардани маҷмӯи майдонҳо дар ин браузерҳо JavaScript-и фармоиширо истифода баред.

Санҷиш

Бо тасдиқи шакли HTML5 ба корбарони худ фикру мулоҳизаҳои арзишманд ва қобили амал пешниҳод кунед – дар ҳама браузерҳои дастгирӣшавандаи мо дастрас аст. Аз браузери пешфарз фикру мулоҳизаҳои тасдиқи пешфарзро интихоб кунед ё паёмҳои фармоиширо бо синфҳои дарунсохт ва JavaScript оғозкунандаи мо татбиқ кунед.

Мо медонем, ки дар айни замон услубҳо ва маслиҳатҳои фармоишии муштарӣ дастрас нестанд, зеро онҳо ба технологияҳои ёрирасон дучор намешаванд. Ҳангоме ки мо дар рӯи ҳалли масъала кор мекунем, мо тавсия медиҳем, ки варианти сервер ё усули тасдиқи пешфарзро истифода барем.

Он чӣ гуна кор мекунад

Ин аст, ки чӣ тавр тасдиқи форма бо Bootstrap к��р мекунад:

  • Тасдиқи шакли HTML тавассути ду синфҳои псевдо-синфи CSS :invalidва :valid. Он ба <input>, <select>, ва <textarea>элементҳо дахл дорад.
  • Bootstrap миқёс :invalidва :validуслубҳоро ба синфи волидайн фаро мегирад .was-validated, ки одатан ба <form>. Дар акси ҳол, ҳама гуна майдони ҳатмӣ бидуни арзиш ҳангоми бори саҳифа беэътибор нишон дода мешавад. Бо ин роҳ, шумо метавонед кай фаъол кардани онҳоро интихоб кунед (одатан пас аз кӯшиши пешниҳоди шакл).
  • Барои аз нав барқарор кардани намуди шакл (масалан, дар сурати пешниҳоди шакли динамикӣ бо истифода аз AJAX), баъд аз пешниҳод .was-validatedсинфро аз <form>нав хориҷ кунед.
  • Ҳамчун бозгашт .is-invalidва .is-validсинфҳо метавонанд ба ҷои псевдоклассҳо барои тасдиқи тарафи сервер истифода шаванд . .was-validatedОнҳо ба синфи волидайн ниёз надоранд .
  • Аз сабаби маҳдудиятҳо дар тарзи кори CSS, мо наметавонем (ҳоло) сабкҳоро ба a <label>, ки пеш аз назорати форма дар DOM меояд, бе ёрии JavaScript фармоишӣ истифода барем.
  • Ҳама браузерҳои муосир API-и санҷиши маҳдудкуниро , як қатор усулҳои JavaScript-ро барои тасдиқи назорати шакл дастгирӣ мекунанд.
  • Паёмҳои фикру мулоҳизаҳо метавонанд пешфарзҳои браузерро (барои ҳар як браузер гуногун ва аз тариқи CSS номуносиб) ё услубҳои бознигарии фармоишии моро бо HTML ва CSS иловагӣ истифода баранд.
  • Шумо метавонед паёмҳои эътибории фармоиширо бо setCustomValidityJavaScript пешниҳод кунед.

Бо дарназардошти ин, намоишҳои зеринро барои услубҳои тасдиқи формаи мо, синфҳои ихтиёрии сервер ва пешфарзҳои браузер баррасӣ кунед.

Услубҳои фармоишӣ

Барои паёмҳои тасдиқкунии шакли Bootstrap, шумо бояд novalidateатрибути мантиқиро ба <form>. Ин маслиҳатҳои пешфарзии баррасиҳои браузерро ғайрифаъол мекунад, аммо ба ҳар ҳол дастрасӣ ба API-ҳои тасдиқи формаро дар JavaScript таъмин мекунад. Кӯшиш кунед, ки шакли зерро пешниҳод кунед; JavaScript-и мо тугмаи ирсолро пахш мекунад ва фикру мулоҳизаҳоро ба шумо мефиристад. Ҳангоми кӯшиши фиристодан, шумо :invalidва :validсабкҳоро мебинед, ки ба идоракунии шакли шумо истифода мешаванд.

Услубҳои баррасиҳои фармоишӣ рангҳои фармоишӣ, сарҳадҳо, услубҳои фокус ва нишонаҳои пасзаминаро барои беҳтар муоширати фикру мулоҳиза истифода мебаранд. Нишонаҳои заминавӣ барои <select>s танҳо бо .custom-select, дастрасанд, на .form-control.

Ба назар хуб!
Ба назар хуб!
Лутфан шаҳри дурустро пешниҳод кунед.
Лутфан ҳолати дурустро интихоб кунед.
Лутфан zip-и дурустро пешниҳод кунед.
Шумо бояд пеш аз пешниҳод розӣ шавед.
<form class="needs-validation" novalidate>
  <div class="form-row">
    <div class="col-md-6 mb-3">
      <label for="validationCustom01">First name</label>
      <input type="text" class="form-control" id="validationCustom01" value="Mark" required>
      <div class="valid-feedback">
        Looks good!
      </div>
    </div>
    <div class="col-md-6 mb-3">
      <label for="validationCustom02">Last name</label>
      <input type="text" class="form-control" id="validationCustom02" value="Otto" required>
      <div class="valid-feedback">
        Looks good!
      </div>
    </div>
  </div>
  <div class="form-row">
    <div class="col-md-6 mb-3">
      <label for="validationCustom03">City</label>
      <input type="text" class="form-control" id="validationCustom03" required>
      <div class="invalid-feedback">
        Please provide a valid city.
      </div>
    </div>
    <div class="col-md-3 mb-3">
      <label for="validationCustom04">State</label>
      <select class="custom-select" id="validationCustom04" required>
        <option selected disabled value="">Choose...</option>
        <option>...</option>
      </select>
      <div class="invalid-feedback">
        Please select a valid state.
      </div>
    </div>
    <div class="col-md-3 mb-3">
      <label for="validationCustom05">Zip</label>
      <input type="text" class="form-control" id="validationCustom05" required>
      <div class="invalid-feedback">
        Please provide a valid zip.
      </div>
    </div>
  </div>
  <div class="form-group">
    <div class="form-check">
      <input class="form-check-input" type="checkbox" value="" id="invalidCheck" required>
      <label class="form-check-label" for="invalidCheck">
        Agree to terms and conditions
      </label>
      <div class="invalid-feedback">
        You must agree before submitting.
      </div>
    </div>
  </div>
  <button class="btn btn-primary" type="submit">Submit form</button>
</form>

<script>
// Example starter JavaScript for disabling form submissions if there are invalid fields
(function() {
  'use strict';
  window.addEventListener('load', function() {
    // Fetch all the forms we want to apply custom Bootstrap validation styles to
    var forms = document.getElementsByClassName('needs-validation');
    // Loop over them and prevent submission
    var validation = Array.prototype.filter.call(forms, function(form) {
      form.addEventListener('submit', function(event) {
        if (form.checkValidity() === false) {
          event.preventDefault();
          event.stopPropagation();
        }
        form.classList.add('was-validated');
      }, false);
    });
  }, false);
})();
</script>

Пешфарзҳои браузер

Оё ба паёмҳои бозгашти фармоишӣ ё навиштани JavaScript барои тағир додани рафтори шакл манфиатдор нестед? Ҳама хуб, шумо метавонед пешфарзҳои браузерро истифода баред. Кӯшиш кунед, ки шакли зерро пешниҳод кунед. Вобаста аз браузер ва OS, шумо услуби каме фарқкунандаи фикру мулоҳизаҳоро хоҳед дид.

Гарчанде ки ин услубҳои фикру мулоҳизаҳоро бо CSS услуб кардан мумкин нест, шумо ба ҳар ҳол метавонед матни фикру мулоҳизаҳоро тавассути JavaScript танзим кунед.

<form>
  <div class="form-row">
    <div class="col-md-6 mb-3">
      <label for="validationDefault01">First name</label>
      <input type="text" class="form-control" id="validationDefault01" value="Mark" required>
    </div>
    <div class="col-md-6 mb-3">
      <label for="validationDefault02">Last name</label>
      <input type="text" class="form-control" id="validationDefault02" value="Otto" required>
    </div>
  </div>
  <div class="form-row">
    <div class="col-md-6 mb-3">
      <label for="validationDefault03">City</label>
      <input type="text" class="form-control" id="validationDefault03" required>
    </div>
    <div class="col-md-3 mb-3">
      <label for="validationDefault04">State</label>
      <select class="custom-select" id="validationDefault04" required>
        <option selected disabled value="">Choose...</option>
        <option>...</option>
      </select>
    </div>
    <div class="col-md-3 mb-3">
      <label for="validationDefault05">Zip</label>
      <input type="text" class="form-control" id="validationDefault05" required>
    </div>
  </div>
  <div class="form-group">
    <div class="form-check">
      <input class="form-check-input" type="checkbox" value="" id="invalidCheck2" required>
      <label class="form-check-label" for="invalidCheck2">
        Agree to terms and conditions
      </label>
    </div>
  </div>
  <button class="btn btn-primary" type="submit">Submit form</button>
</form>

Ҷониби сервер

Мо тавсия медиҳем, ки тасдиқи ҷониби муштарӣ истифода барем, аммо агар шумо тасдиқи тарафи серверро талаб кунед, шумо метавонед майдонҳои шаклҳои беэътибор ва дурустро бо .is-invalidва нишон диҳед .is-valid. Дар хотир доред, .invalid-feedbackки бо ин синфҳо низ дастгирӣ карда мешавад.

Барои майдонҳои беэътибор, боварӣ ҳосил кунед, ки паёми беэътибор/хато бо майдони мувофиқ бо истифода аз aria-describedby. Ин атрибут имкон медиҳад, ки зиёда аз як нафар idистинод карда шаванд, агар майдон аллакай ба матни шакли иловагӣ ишора кунад.

Ба назар хуб!
Ба назар хуб!
Лутфан шаҳри дурустро пешниҳод кунед.
Лутфан ҳолати дурустро интихоб кунед.
Лутфан zip-и дурустро пешниҳод кунед.
Шумо бояд пеш аз пешниҳод розӣ шавед.
<form>
  <div class="form-row">
    <div class="col-md-6 mb-3">
      <label for="validationServer01">First name</label>
      <input type="text" class="form-control is-valid" id="validationServer01" value="Mark" required>
      <div class="valid-feedback">
        Looks good!
      </div>
    </div>
    <div class="col-md-6 mb-3">
      <label for="validationServer02">Last name</label>
      <input type="text" class="form-control is-valid" id="validationServer02" value="Otto" required>
      <div class="valid-feedback">
        Looks good!
      </div>
    </div>
  </div>
  <div class="form-row">
    <div class="col-md-6 mb-3">
      <label for="validationServer03">City</label>
      <input type="text" class="form-control is-invalid" id="validationServer03" aria-describedby="validationServer03Feedback" required>
      <div id="validationServer03Feedback" class="invalid-feedback">
        Please provide a valid city.
      </div>
    </div>
    <div class="col-md-3 mb-3">
      <label for="validationServer04">State</label>
      <select class="custom-select is-invalid" id="validationServer04" aria-describedby="validationServer04Feedback" required>
        <option selected disabled value="">Choose...</option>
        <option>...</option>
      </select>
      <div id="validationServer04Feedback" class="invalid-feedback">
        Please select a valid state.
      </div>
    </div>
    <div class="col-md-3 mb-3">
      <label for="validationServer05">Zip</label>
      <input type="text" class="form-control is-invalid" id="validationServer05" aria-describedby="validationServer05Feedback" required>
      <div id="validationServer05Feedback" class="invalid-feedback">
        Please provide a valid zip.
      </div>
    </div>
  </div>
  <div class="form-group">
    <div class="form-check">
      <input class="form-check-input is-invalid" type="checkbox" value="" id="invalidCheck3" aria-describedby="invalidCheck3Feedback" required>
      <label class="form-check-label" for="invalidCheck3">
        Agree to terms and conditions
      </label>
      <div  id="invalidCheck3Feedback" class="invalid-feedback">
        You must agree before submitting.
      </div>
    </div>
  </div>
  <button class="btn btn-primary" type="submit">Submit form</button>
</form>

Унсурҳои дастгирӣшаванда

Услубҳои тасдиқкунӣ барои идоракунӣ ва ҷузъҳои формаи зерин дастрасанд:

  • <input>с ва <textarea>с бо.form-control
  • <select>с бо .form-controlё.custom-select
  • .form-checkс
  • .custom-checkboxс ва .custom-radioс
  • .custom-file
Лутфан дар майдони матн паём ворид кунед.
Намунаи матни бозгашти беэътибор
Мисоли бештар матни бозгашти беэътибор
Мисол фикру мулоҳизаҳои интихоби фармоишии беэътибор
Мисол фикру мулоҳизаҳои нодурусти файли фармоишӣ
@
Намунаи фикру мулоҳизаҳои гурӯҳи вурудии беэътибор
Намунаи фикру мулоҳизаҳои гурӯҳи вурудии беэътибор
Намунаи фикру мулоҳизаҳои гурӯҳи вурудии беэътибор
<form class="was-validated">
  <div class="mb-3">
    <label for="validationTextarea">Textarea</label>
    <textarea class="form-control is-invalid" id="validationTextarea" placeholder="Required example textarea" required></textarea>
    <div class="invalid-feedback">
      Please enter a message in the textarea.
    </div>
  </div>

  <div class="custom-control custom-checkbox mb-3">
    <input type="checkbox" class="custom-control-input" id="customControlValidation1" required>
    <label class="custom-control-label" for="customControlValidation1">Check this custom checkbox</label>
    <div class="invalid-feedback">Example invalid feedback text</div>
  </div>

  <div class="custom-control custom-radio">
    <input type="radio" class="custom-control-input" id="customControlValidation2" name="radio-stacked" required>
    <label class="custom-control-label" for="customControlValidation2">Toggle this custom radio</label>
  </div>
  <div class="custom-control custom-radio mb-3">
    <input type="radio" class="custom-control-input" id="customControlValidation3" name="radio-stacked" required>
    <label class="custom-control-label" for="customControlValidation3">Or toggle this other custom radio</label>
    <div class="invalid-feedback">More example invalid feedback text</div>
  </div>

  <div class="mb-3">
    <select class="custom-select" required>
      <option value="">Choose...</option>
      <option value="1">One</option>
      <option value="2">Two</option>
      <option value="3">Three</option>
    </select>
    <div class="invalid-feedback">Example invalid custom select feedback</div>
  </div>

  <div class="custom-file mb-3">
    <input type="file" class="custom-file-input" id="validatedCustomFile" required>
    <label class="custom-file-label" for="validatedCustomFile">Choose file...</label>
    <div class="invalid-feedback">Example invalid custom file feedback</div>
  </div>

  <div class="mb-3">
    <div class="input-group is-invalid">
      <div class="input-group-prepend">
        <span class="input-group-text" id="validatedInputGroupPrepend">@</span>
      </div>
      <input type="text" class="form-control is-invalid" aria-describedby="validatedInputGroupPrepend" required>
    </div>
    <div class="invalid-feedback">
      Example invalid input group feedback
    </div>
  </div>

  <div class="mb-3">
    <div class="input-group is-invalid">
      <div class="input-group-prepend">
        <label class="input-group-text" for="validatedInputGroupSelect">Options</label>
      </div>
      <select class="custom-select" id="validatedInputGroupSelect" required>
        <option value="">Choose...</option>
        <option value="1">One</option>
        <option value="2">Two</option>
        <option value="3">Three</option>
      </select>
    </div>
    <div class="invalid-feedback">
      Example invalid input group feedback
    </div>
  </div>

  <div class="input-group is-invalid">
    <div class="custom-file">
      <input type="file" class="custom-file-input" id="validatedInputGroupCustomFile" required>
      <label class="custom-file-label" for="validatedInputGroupCustomFile">Choose file...</label>
    </div>
    <div class="input-group-append">
       <button class="btn btn-outline-secondary" type="button">Button</button>
    </div>
  </div>
  <div class="invalid-feedback">
    Example invalid input group feedback
  </div>
</form>

Маслиҳатҳо

Агар тарҳбандии формаи шумо ба он иҷозат диҳад, шумо метавонед .{valid|invalid}-feedbackдарсҳоро барои .{valid|invalid}-tooltipдарсҳо иваз кунед, то фикру мулоҳизаҳои тасдиқкуниро дар як лавҳаи услубӣ нишон диҳанд. Боварӣ ҳосил кунед, ки волидайн бо position: relativeон барои ҷойгиркунии асбобҳо дошта бошед. Дар мисоли зер, синфҳои сутуни мо аллакай инро доранд, аммо лоиҳаи шумо метавонад танзимоти алтернативӣ талаб кунад.

Ба назар хуб!
Ба назар хуб!
Лутфан шаҳри дурустро пешниҳод кунед.
Лутфан ҳолати дурустро интихоб кунед.
Лутфан zip-и дурустро пешниҳод кунед.
<form class="needs-validation" novalidate>
  <div class="form-row">
    <div class="col-md-6 mb-3">
      <label for="validationTooltip01">First name</label>
      <input type="text" class="form-control" id="validationTooltip01" value="Mark" required>
      <div class="valid-tooltip">
        Looks good!
      </div>
    </div>
    <div class="col-md-6 mb-3">
      <label for="validationTooltip02">Last name</label>
      <input type="text" class="form-control" id="validationTooltip02" value="Otto" required>
      <div class="valid-tooltip">
        Looks good!
      </div>
    </div>
  </div>
  <div class="form-row">
    <div class="col-md-6 mb-3">
      <label for="validationTooltip03">City</label>
      <input type="text" class="form-control" id="validationTooltip03" required>
      <div class="invalid-tooltip">
        Please provide a valid city.
      </div>
    </div>
    <div class="col-md-3 mb-3">
      <label for="validationTooltip04">State</label>
      <select class="custom-select" id="validationTooltip04" required>
        <option selected disabled value="">Choose...</option>
        <option>...</option>
      </select>
      <div class="invalid-tooltip">
        Please select a valid state.
      </div>
    </div>
    <div class="col-md-3 mb-3">
      <label for="validationTooltip05">Zip</label>
      <input type="text" class="form-control" id="validationTooltip05" required>
      <div class="invalid-tooltip">
        Please provide a valid zip.
      </div>
    </div>
  </div>
  <button class="btn btn-primary" type="submit">Submit form</button>
</form>

Мутобиқсозӣ

Ҳолатҳои тасдиқро тавассути Sass бо $form-validation-statesхарита танзим кардан мумкин аст. Дар _variables.scssфайли мо ҷойгир аст, ки ин харитаи Sass барои тавлиди ҳолати пешфарз valid/ invalidтафтишкунӣ ҳал карда шудааст. Дар он харитаи лона барои танзими ранг ва нишонаи ҳар як давлат мавҷуд аст. Гарчанде ки ягон давлатҳои дигар аз ҷониби браузерҳо дастгирӣ намешаванд, онҳое, ки услубҳои фармоиширо истифода мебаранд, метавонанд ба осонӣ фикру мулоҳизаҳои мураккабтарро илова кунанд.

Лутфан қайд кунед, ки мо тавсия намедиҳем, ки ин арзишҳоро бидуни тағир додани form-validation-stateмиксин низ танзим кунем.

// Sass map from `_variables.scss`
// Override this and recompile your Sass to generate different states
$form-validation-states: map-merge(
  (
    "valid": (
      "color": $form-feedback-valid-color,
      "icon": $form-feedback-icon-valid
    ),
    "invalid": (
      "color": $form-feedback-invalid-color,
      "icon": $form-feedback-icon-invalid
    )
  ),
  $form-validation-states
);

// Loop from `_forms.scss`
// Any modifications to the above Sass map will be reflected in your compiled
// CSS via this loop.
@each $state, $data in $form-validation-states {
  @include form-validation-state($state, map-get($data, color), map-get($data, icon));
}

Тасдиқи гурӯҳи воридотӣ

Барои муайян кардани он, ки ба кадом унсурҳо гӯшаҳои мудавваршуда дар дохили гурӯҳи вуруд бо тасдиқ лозим аст, гурӯҳи воридот .has-validationсинфи иловагиро талаб мекунад.

<div class="input-group has-validation">
  <div class="input-group-prepend">
    <span class="input-group-text">@</span>
  </div>
  <input type="text" class="form-control" required>
  <div class="invalid-feedback">
    Please choose a username.
  </div>
</div>
@
Лутфан номи корбарро интихоб кунед.

Шаклҳои фармоишӣ

Барои мутобиқсозии боз ҳам бештар ва мутобиқати браузер, унсурҳои шакли комилан фармоишии моро барои иваз кардани пешфарзҳои браузер истифода баред. Онҳо дар болои аломатгузории семантикӣ ва дастрас сохта шудаанд, аз ин рӯ онҳо барои ҳама гуна назорати пешфарз ивазкунандаи устувор мебошанд.

Санҷишҳо ва радиоҳо

Ҳар як қуттии қайд ва радио <input>ва <label>ҷуфткунӣ дар як печонида шудааст, <div>то назорати фармоишии моро эҷод кунад. Аз ҷиҳати сохторӣ, ин ҳамон равишест, ки пешфарзи мост .form-check.

Мо селектори бародар ( ~) -ро барои ҳама иёлатҳои худ истифода мебарем, <input>масалан :checked- барои дуруст услуб кардани нишондиҳандаи шакли фармоишии мо. Вақте ки бо .custom-control-labelсинф якҷоя карда мешавад, мо инчунин метавонем матнро барои ҳар як ҷузъ дар асоси ҳолати <input>' услубӣ созем.

Мо пешфарзро <input>бо пинҳон мекунем opacityва .custom-control-labelбарои сохтани нишондиҳандаи шакли нави фармоишӣ дар ҷои он бо ::beforeва истифода мебарем ::after. Мутаассифона, мо наметавонем як фармоиширо аз он созем, <input>зеро CSS contentдар ин элемент кор намекунад.

Дар иёлатҳои санҷидашуда мо нишонаҳои SVG-и дарунсохташудаи base64 аз Open Iconic -ро истифода мебарем . Ин ба мо беҳтарин назорати услуб ва ҷойгиркунӣ дар браузерҳо ва дастгоҳҳоро медиҳад.

Қуттиҳои қайд

<div class="custom-control custom-checkbox">
  <input type="checkbox" class="custom-control-input" id="customCheck1">
  <label class="custom-control-label" for="customCheck1">Check this custom checkbox</label>
</div>

Қуттиҳои фармоишӣ инчунин метавонанд :indeterminateсинфи псевдоро ҳангоми ба таври дастӣ тавассути JavaScript насб кардан истифода баранд (барои нишон додани он ягон атрибути дастраси HTML мавҷуд нест).

Агар шумо jQuery-ро истифода баред, чизе монанди ин кифоя аст:

$('.your-checkbox').prop('indeterminate', true)

Радиохо

<div class="custom-control custom-radio">
  <input type="radio" id="customRadio1" name="customRadio" class="custom-control-input">
  <label class="custom-control-label" for="customRadio1">Toggle this custom radio</label>
</div>
<div class="custom-control custom-radio">
  <input type="radio" id="customRadio2" name="customRadio" class="custom-control-input">
  <label class="custom-control-label" for="customRadio2">Or toggle this other custom radio</label>
</div>

Дар мувофиқат

<div class="custom-control custom-radio custom-control-inline">
  <input type="radio" id="customRadioInline1" name="customRadioInline" class="custom-control-input">
  <label class="custom-control-label" for="customRadioInline1">Toggle this custom radio</label>
</div>
<div class="custom-control custom-radio custom-control-inline">
  <input type="radio" id="customRadioInline2" name="customRadioInline" class="custom-control-input">
  <label class="custom-control-label" for="customRadioInline2">Or toggle this other custom radio</label>
</div>

Маъюб

Қуттиҳои фармоишӣ ва радиоҳоро низ ғайрифаъол кардан мумкин аст. Ба disabledатрибути логикӣ илова кунед <input>ва нишондиҳандаи фармоишӣ ва тавсифи нишона ба таври худкор услубӣ карда мешавад.

<div class="custom-control custom-checkbox">
  <input type="checkbox" class="custom-control-input" id="customCheckDisabled1" disabled>
  <label class="custom-control-label" for="customCheckDisabled1">Check this custom checkbox</label>
</div>

<div class="custom-control custom-radio">
  <input type="radio" name="radioDisabled" id="customRadioDisabled2" class="custom-control-input" disabled>
  <label class="custom-control-label" for="customRadioDisabled2">Toggle this custom radio</label>
</div>

Гузаришҳо

Гузариш дорои аломати қуттии санҷиши фармоишӣ мебошад, аммо .custom-switchсинфро барои интиқоли гузариш истифода мебарад. Гузаришҳо инчунин атрибутро дастгирӣ мекунанд disabled.

<div class="custom-control custom-switch">
  <input type="checkbox" class="custom-control-input" id="customSwitch1">
  <label class="custom-control-label" for="customSwitch1">Toggle this switch element</label>
</div>
<div class="custom-control custom-switch">
  <input type="checkbox" class="custom-control-input" disabled id="customSwitch2">
  <label class="custom-control-label" for="customSwitch2">Disabled switch element</label>
</div>

Менюро интихоб кунед

Менюҳои <select>фармоишӣ танҳо ба синфи фармоишӣ ниёз доранд, .custom-selectто услубҳои фармоиширо ангеза кунанд. Сабкҳои фармоишӣ бо намуди ибтидоии ' маҳдуданд <select>ва наметавонанд <option>s-ро бо сабаби маҳдудиятҳои браузер тағир диҳанд.

<select class="custom-select">
  <option selected>Open this select menu</option>
  <option value="1">One</option>
  <option value="2">Two</option>
  <option value="3">Three</option>
</select>

Шумо инчунин метавонед аз интихобҳои хурд ва калон интихоб кунед, то ба воридоти матнии якхелаи мо мувофиқат кунанд.

<select class="custom-select custom-select-lg mb-3">
  <option selected>Open this select menu</option>
  <option value="1">One</option>
  <option value="2">Two</option>
  <option value="3">Three</option>
</select>

<select class="custom-select custom-select-sm">
  <option selected>Open this select menu</option>
  <option value="1">One</option>
  <option value="2">Two</option>
  <option value="3">Three</option>
</select>

Аттрибут multipleинчунин дастгирӣ карда мешавад:

<select class="custom-select" multiple>
  <option selected>Open this select menu</option>
  <option value="1">One</option>
  <option value="2">Two</option>
  <option value="3">Three</option>
</select>

Тавре ки sizeсифат аст:

<select class="custom-select" size="3">
  <option selected>Open this select menu</option>
  <option value="1">One</option>
  <option value="2">Two</option>
  <option value="3">Three</option>
</select>

Диапазон

Эҷоди <input type="range">назорати фармоишӣ бо .custom-range. Роҳ (замина) ва ангушти калон (қимат) ҳарду тарҳрезӣ шудаанд, ки дар тамоми браузерҳо якхела бошанд. Азбаски танҳо IE ва Firefox "пур кардани" пайроҳаи худро аз чап ё рости ангушти калон ҳамчун воситаи нишон додани пешрафти визуалӣ дастгирӣ мекунанд, мо ҳоло онро дастгирӣ намекунем.

<label for="customRange1">Example range</label>
<input type="range" class="custom-range" id="customRange1">

Вурудҳои диапазон мутаносибан барои minва max- 0ва арзишҳои номуайян 100доранд. minШумо метавонед барои онҳое, ки maxатрибутҳои варо истифода мебаранд, арзишҳои нав таъин кунед .

<label for="customRange2">Example range</label>
<input type="range" class="custom-range" min="0" max="5" id="customRange2">

Бо нобаёнӣ, диапазон воридотро ба арзишҳои бутун "часп" мекунад. Барои тағир додани ин, шумо метавонед stepарзишро муайян кунед. Дар мисоли дар поён овардашуда, мо бо истифода аз step="0.5".

<label for="customRange3">Example range</label>
<input type="range" class="custom-range" min="0" max="5" step="0.5" id="customRange3">

Браузери файл

Васлкунаки тавсияшуда барои аниматсия кардани вуруди файли фармоишӣ: bs-custom-file-input , он чизест, ки мо ҳоло дар ҳуҷҷатҳои худ истифода мебарем.

Вуруди файл аз ҳама ғамхортарин аст ва JavaScript-и иловагиро талаб мекунад, агар шумо хоҳед, ки онҳоро бо функсионалии Интихоби файл… ва матни номи файли интихобшуда пайваст кунед.

<div class="custom-file">
  <input type="file" class="custom-file-input" id="customFile">
  <label class="custom-file-label" for="customFile">Choose file</label>
</div>

Мо файли пешфарзро <input>тавассути пинҳон мекунем opacityва ба ҷои он услуби <label>. Тугма бо тавлид ва ҷойгир карда ::afterмешавад. Ниҳоят, мо дар бораи фосилаи дуруст барои мундариҷаи атроф widthэълон мекунем.height<input>

Тарҷума ё танзим кардани сатрҳо бо SCSS

Синфи :lang()псевдо-синф барои тарҷумаи матни "Мураттаб" ба забонҳои дигар истифода мешавад. Сабтҳоро ба $custom-file-textтағирёбандаи Sass бо барчаспҳои забонии мувофиқ ва сатрҳои маҳаллӣ илова кунед. Сатрҳои англисиро низ ҳамин тавр танзим кардан мумкин аст. Масалан, ин аст, ки чӣ тавр як тарҷумаи испаниро илова кардан мумкин аст (рамзи забони испанӣ es):

$custom-file-text: (
  en: "Browse",
  es: "Elegir"
);

Дар ин ҷо lang(es)амал дар вуруди файли фармоишӣ барои тарҷумаи испанӣ:

<div class="custom-file">
  <input type="file" class="custom-file-input" id="customFileLang" lang="es">
  <label class="custom-file-label" for="customFileLang">Seleccionar Archivo</label>
</div>

Шумо бояд забони ҳуҷҷати худро (ё зердарахти онро) дуруст танзим кунед, то матни дуруст нишон дода шавад. Инро метавон бо истифода аз langатрибут дар <html>элемент ё Content-Languageсарлавҳаи HTTP , дар байни усулҳои дигар анҷом дод.

Тарҷума ё танзим кардани сатрҳо бо HTML

Bootstrap инчунин роҳи тарҷумаи матни "Муборак" дар HTML бо data-browseатрибутеро пешниҳод мекунад, ки мумкин аст ба нишони вуруди фармоишӣ илова карда шавад (мисол ба забони голландӣ):

<div class="custom-file">
  <input type="file" class="custom-file-input" id="customFileLangHTML">
  <label class="custom-file-label" for="customFileLangHTML" data-browse="Bestand kiezen">Voeg je document toe</label>
</div>