रूप दे
फार्म नियंत्रण शैलियें, लेआउट विकल्पें, ते व्यापक किस्म दे फार्म बनाने लेई कस्टम घटकें लेई उदाहरण ते उपयोग दिशा-निर्देश।
अवलोकन करना
बूटस्ट्रैप दे फार्म नियंत्रण क्लासें कन्नै साढ़ी रिबूट फार्म शैलियां पर विस्तार करदे न। ब्राउज़रें ते डिवाइसें च इक होर सुसंगत रेंडरिंग आस्तै उंदे अनुकूलित प्रदर्शनें च चुनने आस्तै इनें वर्गें दा इस्तेमाल करो.
ईमेल सत्यापन, नंबर चयन, ते होर मते सारे नमें इनपुट नियंत्रणें दा फायदा लैने आस्तै सब्भै इनपुटें पर इक उचित विशेषता दा उपयोग करना सुनिश्चत करो type
(जियां, email
ईमेल पते आस्तै जां संख्यात्मक जानकारी आस्तै)।number
बूटस्ट्रैप दी फार्म शैलियां गी प्रदर्शत करने आस्तै इक त्वरित उदाहरण ऐ। जरूरी कक्षाएं, फार्म लेआउट, ते होर मते सारे दस्तावेजें लेई पढ़दे रौह्ओ.
<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>
एस, <select>
एस, ते <textarea>
एस- .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 ते s इक दे अंदर इक दे <label>
विपरीत भ्राऽ-भैन-भ्रा तत्व न । एह् थोह् ड़ी - मती शब्दावली ऐ की जे तुसें गी ते .<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>
खाका
चूंकि बूटस्ट्रैप लागू होंदा ऐ 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-*-*
अपने लेबल ते नियंत्रणें दी चौड़ाई निर्दिश्ट करने आस्तै वर्गें दा इस्तेमाल करियै ग्रिड कन्नै क्षैतिज रूप बनाओ . .col-form-label
अपने एस च बी जोड़ना सुनिश्चित करो <label>
तां जे ओह् अपने संबद्ध फार्म नियंत्रणें कन्नै लंबवत केंद्रत होन।
कदें-कदें, तुसेंगी उस परफेक्ट संरेखण गी बनाने लेई शायद मार्जिन जां पैडिंग उपयोगिताएं दा इस्तेमाल करने दी लोड़ होग जेह् ड़ी तुसेंगी लोड़चदी ऐ। मसाल आस्तै, padding-top
पाठ बेसलाइन गी बेहतर तरीके कन्नै संरेखित करने आस्तै असें अपने ढेर कीते गेदे रेडियो इनपुट लेबल पर गी हटाई दित्ता ऐ।
<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">
<div class="row">
<legend class="col-form-label col-sm-2 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>
</div>
</fieldset>
<div class="form-group row">
<div class="col-sm-2">Checkbox</div>
<div class="col-sm-10">
<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>
इस्तेमाल करो ।<legend>
.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
s गी इक .row
जां .form-row
. वे उऩरब्ध चौड़ाई को अऩने बीतय बराबर फॊट देंगे। तुस अपने स्तंभें दा इक उप-समूह बी चुनी सकदे ओ जेह् ड़ा घट्ट जां मता जगह लैंदा ऐ , जिसलै के बाकी .col
दे s बाकी गी बराबर बंडदा ऐ , जिस च विशिष्ट स्तंभ वर्गें कन्नै .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>
ऑटो-साइजिंग करना
हेठ दित्ती गेदी उदाहरन सामग्री गी लंबवत केंद्रत करने आस्तै इक फ्लेक्सबॉक्स उपयोगिता दा उपयोग करदा ऐ ते इस च बदलाव .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>
इनलाइन फार्म
.form-inline
इक गै क्षैतिज पंक्ति पर लेबल, फार्म नियंत्रण, ते बटनें दी श्रृंखला प्रदर्शत करने आस्तै वर्ग दा उपयोग करो . इनलाइन फार्म दे अंदर फार्म नियंत्रण उंदी डिफाल्ट स्थिति थमां थोड़ा बक्ख-बक्ख ऐ।
- नियंत्रण न
display: flex
, कुसै बी HTML सफेद स्पेस गी संकुचित करदे न ते तुसेंगी स्पेसिंग ते फ्लेक्सबॉक्स उपयोगिताएं कन्नै संरेखण नियंत्रण प्रदान करने दी इजाजत दिंदे न. - नियंत्रण ते इनपुट समूह
width: auto
बूटस्ट्रैप डिफाल्ट गी ओवरराइड करने लेई प्राप्त करदे नwidth: 100%
. - नियंत्रण सिर्फ उनें व्यूपोर्टें च इनलाइन दिक्खे जंदे न जेह् ड़े घट्ट शा घट्ट 576px चौड़ा होंदे न तां जे मोबाइल डिवाइस पर संकीर्ण व्यूपोर्टें दा लेखा-जोखा दित्ता जाई सकै।
तुसेंगी स्पेसिंग यूटिलिटीएं कन्नै व्यक्तिगत फार्म नियंत्रणें दी चौड़ाई ते संरेखण गी मैन्युअल रूप कन्नै संबोधित करने दी लोड़ होग (जिऱयां कि हेठ दिक्खेआ गेआ ऐ)। आखरी च, हर इक फार्म नियंत्रण कन्नै हमेशा इक गी शामल करना सुनिश्चत करो <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
होर लेबलिंग तरीकें दे बदले दे रूप च इसदा इस्तेमाल करने दी सलाह नेईं दित्ती जंदी ऐ।
मदद पाठ करना
फार्म च ब्लॉक-स्तरीय मदद पाठ दा उपयोग करदे होई बनाया जाई सकदा ऐ (पैह् ले v3 च .form-text
जानेआ जंदा हा )। .help-block
इनलाइन मदद पाठ गी कुसै बी इनलाइन एचटीएमएल तत्व ते उपयोगिता वर्गें जि’यां .text-muted
.
मदद पाठ गी फार्म नियंत्रणें कन्नै जोड़ना
मदद पाठ गी स्पश्ट रूप कन्नै उस फार्म नियंत्रण कन्नै जुड़े दा होना चाहिदा जेह् ड़ा एह् aria-describedby
विशेषता दा उपयोग करने कन्नै सरबंधत ऐ. एह् इस गल्लै गी सुनिश्चत करग जे सहायक तकनीकें-जि’यां स्क्रीन रीडर-इस मदद पाठ दी घोशणा करग जिसलै बरतूनी नियंत्रण च ध्यान केंद्रत करदा ऐ जां दाखल करदा ऐ।
इनपुटें दे हेठ दित्ती गेदी मदद पाठ गी .form-text
. इस वर्ग च display: block
उपर दित्ते गेदे इनपुटें थमां आसान स्पेसिंग आस्तै किश शीर्शक मार्जिन शामल ऐ ते जोड़ेआ जंदा ऐ।
<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>
, जां कुसै होर) दा इस्तेमाल करी सकदा ऐ जिस च इक उपयोगिता वर्ग थमां मता किश नेईं ऐ.
<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>
<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>
लंगर के साथ चेतावनी
ब्राउज़र a दे अंदर सारे देशी रूप नियंत्रणें ( <input>
, <select>
, ते <button>
तत्वें) <fieldset disabled>
गी अक्षम दे रूप च समझदे न, उंदे पर कीबोर्ड ते माउस दोनें परस्पर क्रियाएं गी रोकदे न.
हालांकि, जेकर तुंदे फार्म च कस्टम बटन-जैसे तत्व बी शामल न जि'यां <a ... class="btn btn-*">
, तां इन्हें गी सिर्फ pointer-events: none
. जिऱयां बटनें आस्तै अक्षम स्थिति दे बारे च खंड च दिक्खेआ गेआ ऐ (ते खास करियै एंकर तत्वें आस्तै उप-खंड च), एह् CSS गुण अजें तगर मानक नेईं ऐ ते इंटरनेट एक्सप्लोरर 10 च पूरी चाल्ली समर्थत नेईं ऐ एंकर-आधारत नियंत्रण बी अजें बी होग कीबोर्ड दा उपयोग करदे होई फोकस करने योग्य ते संचालन योग्य। tabindex="-1"
तुसेंगी इनें नियंत्रणें गी ध्यान देने थमां रोकने ते aria-disabled="disabled"
सहायक तकनीकें गी उंदी स्थिति दा संकेत देने लेई जोड़ियै मैन्युअल रूप कन्नै संशोधित करना होग ।
क्रॉस-ब्राउज़र संगतता
जदके बूटस्ट्रैप इनें शैलियें गी सारे ब्राउज़रें च लागू करग , इंटरनेट एक्सप्लोरर 11 ते हेठ दित्ते गेदे disabled
इक पर विशेषता गी पूरी चाल्ली समर्थन नेईं करदे न <fieldset>
. इनें ब्राउज़रें च फील्डसेट गी अक्षम करने आस्तै कस्टम जावास्क्रिप्ट दा इस्तेमाल करो.
मान्यता देना
HTML5 फार्म सत्यापन कन्नै अपने बरतूनी गी कीमती, कार्रवाई करने योग्य प्रतिक्रिया प्रदान करो– साढ़े सारे समर्थत ब्राउज़रें च उपलब्ध ऐ . ब्राउज़र डिफाल्ट सत्यापन प्रतिक्रिया थमां चुनो, जां साढ़े बिल्ट-इन क्लासें ते स्टार्टर जावास्क्रिप्ट कन्नै कस्टम संदेशें गी लागू करो.
अस जानने आं जे इसलै ग्राहक-पक्ष कस्टम सत्यापन शैलियां ते टूलटिप्स सुलभ नेईं न, की जे एह् सहायक तकनीकें कन्नै सरबंधत नेईं न। जदूं अस इक समाधान उप्पर कम्म करदे आं , तां अस या तां सर्वर-साइड विकल्प जां डिफाल्ट ब्राउज़र सत्यापन पद्धति दा इस्तेमाल करने दी सलाह देगे.
इनपुट समूह सत्यापन
इनपुट समूहें गी सत्यापन शैलियें कन्नै दिक्कत होंदी ऐ , दुर्भाग्य कन्नै । साढ़ी सिफारिश ऐ जे फीडबैक संदेशें गी भैन-भ्रा तत्वें दे रूप च रक्खेआ जा .input-group
जेह्ड़ा .is-{valid|invalid}
. इनपुट समूहें दे अंदर प्रतिक्रिया संदेशें गी रखने कन्नै border-radius
. इस वर्कअराउंड गी दिक्खो .
किवें कम्म करदा है
बूटस्ट्रैप कन्नै फार्म सत्यापन कि’यां कम्म करदा ऐ: एह् दिक्खेआ गेआ ऐ:
- एचटीएमएल फार्म सत्यापन CSS दे दो छद्म-वर्गें दे राहें लागू कीता जंदा ऐ,
:invalid
ते:valid
. एह्<input>
,<select>
, ते<textarea>
तत्वें पर लागू होंदा ऐ । :invalid
बूटस्ट्रैप माता-पिता वर्ग गी ते:valid
शैलियें गी दायरे बनांदा ऐ.was-validated
, आमतौर पर<form>
. नेईं ते, बिना कुसै मूल्य दे कोई बी जरूरी फील्ड पृष्ठ लोड पर अमान्य दे रूप च दस्सेआ जंदा ऐ. इस चाल्लीं, तुस चुन सकदे ओ जे उ’नेंगी कदूं सक्रिय करना ऐ (आम तौर पर फार्म जमा करने दी कोशश करने दे बाद)।- फार्म दी शक्ल गी रीसेट करने आस्तै (उदाहरण दे तौर पर, AJAX दा इस्तेमाल करदे होई गतिशील फार्म सबमिशन दे मामले च), सबमिशन दे बाद दुबारा
.was-validated
क्लास गी हटाओ.<form>
- फॉलबैक दे रूप च,
.is-invalid
ते सर्वर साइड सत्यापन.is-valid
आस्तै छद्म-वर्गें दे बजाय वर्गें दा इस्तेमाल कीता जाई सकदा ऐ . इन्हें गी पैरेंट क्लास दी लोड़ नेईं ऐ ।.was-validated
- CSS किस चाल्ली कम्म करदा ऐ इस च बाधाएं दे कारण, अस (वर्तमान च)
<label>
कस्टम जावास्क्रिप्ट दी मदद दे बगैर इक गी शैलियें गी लागू नेईं करी सकदे जेह् ड़ी DOM च इक फार्म नियंत्रण थमां पैह् ले औंदी ऐ. - सारे आधुनिक ब्राउज़र कन्स्ट्रैंट सत्यापन एपीआई दा समर्थन करदे न , जेह् ड़ी फार्म नियंत्रणें गी प्रमाणत करने आस्तै जावास्क्रिप्ट तरीकें दी इक श्रृंखला ऐ।
- फीडबैक संदेश ब्राउज़र डिफाल्ट (हर ब्राउज़र आस्तै बक्ख-बक्ख, ते CSS दे राहें अनस्टाइल करने योग्य) जां साढ़े कस्टम फीडबैक शैलियें दा उपयोग अतिरिक्त HTML ते CSS कन्नै करी सकदे न।
setCustomValidity
तुस जावास्क्रिप्ट च कन्नै कस्टम वैधता संदेश उपलब्ध करोआई सकदे ओ .
उसगी ध्यान च रक्खदे होई, साढ़ी कस्टम फार्म सत्यापन शैलियें, वैकल्पिक सर्वर साइड क्लासें, ते ब्राउज़र डिफाल्टें आस्तै निम्नलिखित डेमो पर विचार करो.
कस्टम शैलियाँ
कस्टम बूटस्ट्रैप फार्म सत्यापन संदेशें आस्तै, तुसेंगी novalidate
अपने <form>
. एह् ब्राउज़र डिफाल्ट फीडबैक टूलटिप्स गी अक्षम करदा ऐ, पर इसदे बावजूद बी जावास्क्रिप्ट च फार्म सत्यापन एपीआई तगर पुज्ज प्रदान करदा ऐ. निचले फार्म गी जमा करने दी कोशश करो; साढ़ी जावास्क्रिप्ट सबमिट बटन गी इंटरसेप्ट करग ते तुसेंगी प्रतिक्रिया रिले करग। जमा करने दी कोशश करदे बेल्लै, तुस अपने फार्म नियंत्रणें पर लागू कीते गेदे :invalid
ते शैलियें गी दिक्खगे ।:valid
कस्टम फीडबैक शैलियां फीडबैक गी बेहतर तरीके कन्नै संप्रेषित करने आस्तै कस्टम रंग, सीमा, फोकस शैलियां, ते पृष्ठभूमि आइकन लागू करदियां न। s आस्तै पृष्ठभूमि चिह् <select>
न सिर्फ कन्नै उपलब्ध न .custom-select
, ते नेईं .form-control
.
<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>
ब्राउज़र डिफ़ॉल्ट होंदा ऐ
कस्टम सत्यापन प्रतिक्रिया संदेशें च रुचि नेईं ऐ जां फार्म व्यवहार बदलने आस्तै जावास्क्रिप्ट लिखने च रुचि नेईं ऐ ? सब अच्छा, तुस ब्राउज़र डिफ़ॉल्ट दा इस्तेमाल करी सकदे ओ। निचले फार्म जमा करने दी कोशश करो। अपने ब्राउज़र ते ओएस दे आधार उप्पर, तुसें गी फीडबैक दी इक थोड़ी बक्खरी शैली दिक्खी जाग।
जदके एह् फीडबैक शैलियां CSS कन्नै स्टाइल नेईं कीतियां जाई सकदियां न, तां तुस अजें बी जावास्क्रिप्ट दे राहें फीडबैक पाठ गी अनुकूलित करी सकदे ओ.
<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
संदर्भ देने दी इजाजत दिंदा ऐ, इस मामले च जे फील्ड पैह् ले थमां गै अतिरिक्त फार्म पाठ गी इशारा करदा ऐ.
<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
हेठ दित्ते गेदे उदाहरन च, साढ़े स्तंभ वर्गें च एह् पैह् ले थमां गै ऐ, पर तुंदे प्रोजेक्ट गी इक वैकल्पिक सेटअप दी लोड़ होई सकदी ऐ.
<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>
अनुकूलित करना
Validation states can be customized via Sass with the $form-validation-states
map. Located in our _variables.scss
file, this Sass map is looped over to generate the default valid
/invalid
validation states. Included is a nested map for customizing each state’s color and icon. While no other states are supported by browsers, those using custom styles can easily add more complex form feedback.
Please note that we do not recommend customizing these values without also modifying the form-validation-state
mixin.
// 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));
}
Input group validation workaround
We’re unable to resolve the broken border-radius
of input groups with validation due to selector limitations, so manual overrides are required. When you’re using a standard input group and don’t customize the default border radius values, add .rounded-right
to the elements with the broken border-radius
.
<div class="input-group">
<div class="input-group-prepend">
<span class="input-group-text">@</span>
</div>
<input type="text" class="form-control rounded-right" required>
<div class="invalid-feedback">
Please choose a username.
</div>
</div>
When you are using a small or large input group or customizing the default border-radius
values, add custom CSS to the element with the busted border-radius
.
/* Change values to match the radius of your form control */
.fix-rounded-right {
border-top-right-radius: .2rem !important;
border-bottom-right-radius: .2rem !important;
}
<div class="input-group input-group-sm">
<div class="input-group-prepend">
<span class="input-group-text">@</span>
</div>
<input type="text" class="form-control fix-rounded-right" required>
<div class="invalid-feedback">
Please choose a username.
</div>
</div>
Custom forms
For even more customization and cross browser consistency, use our completely custom form elements to replace the browser defaults. They’re built on top of semantic and accessible markup, so they’re solid replacements for any default form control.
Checkboxes and radios
Each checkbox and radio <input>
and <label>
pairing is wrapped in a <div>
to create our custom control. Structurally, this is the same approach as our default .form-check
.
We use the sibling selector (~
) for all our <input>
states—like :checked
—to properly style our custom form indicator. When combined with the .custom-control-label
class, we can also style the text for each item based on the <input>
’s state.
We hide the default <input>
with opacity
and use the .custom-control-label
to build a new custom form indicator in its place with ::before
and ::after
. Unfortunately we can’t build a custom one from just the <input>
because CSS’s content
doesn’t work on that element.
In the checked states, we use base64 embedded SVG icons from Open Iconic. This provides us the best control for styling and positioning across browsers and devices.
Checkboxes
<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>
Custom checkboxes can also utilize the :indeterminate
pseudo class when manually set via JavaScript (there is no available HTML attribute for specifying it).
If you’re using jQuery, something like this should suffice:
$('.your-checkbox').prop('indeterminate', true)
Radios
<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>
Inline
<div class="custom-control custom-radio custom-control-inline">
<input type="radio" id="customRadioInline1" name="customRadioInline1" 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="customRadioInline1" class="custom-control-input">
<label class="custom-control-label" for="customRadioInline2">Or toggle this other custom radio</label>
</div>
Disabled
Custom checkboxes and radios can also be disabled. Add the disabled
boolean attribute to the <input>
and the custom indicator and label description will be automatically styled.
<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>
Switches
A switch has the markup of a custom checkbox but uses the .custom-switch
class to render a toggle switch. Switches also support the disabled
attribute.
<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 menu
Custom <select>
menus need only a custom class, .custom-select
to trigger the custom styles. Custom styles are limited to the <select>
’s initial appearance and cannot modify the <option>
s due to browser limitations.
<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>
You may also choose from small and large custom selects to match our similarly sized text inputs.
<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>
The multiple
attribute is also supported:
<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>
As is the size
attribute:
<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>
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.
<label for="customRange1">Example range</label>
<input type="range" class="custom-range" id="customRange1">
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.
<label for="customRange2">Example range</label>
<input type="range" class="custom-range" min="0" max="5" id="customRange2">
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"
.
<label for="customRange3">Example range</label>
<input type="range" class="custom-range" min="0" max="5" step="0.5" id="customRange3">
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.
<div class="custom-file">
<input type="file" class="custom-file-input" id="customFile">
<label class="custom-file-label" for="customFile">Choose file</label>
</div>
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
):
$custom-file-text: (
en: "Browse",
es: "Elegir"
);
Here’s lang(es)
in action on the custom file input for a Spanish translation:
<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>
सही पाठ गी दस्सने आस्तै तुसेंगी अपने दस्तावेज़ दी भाशा (जां उसदा उप-वृक्ष) गी ठीक ढंगै कन्नै सेट करना होग. एह् होर तरीकें दे कन्नै- कन्नै तत्व पर विशेषता जां HTTP हेडर दा इस्तेमाल करियै कीता जाई सकदा ऐ.lang
<html>
Content-Language
एचटीएमएल कन्नै स्ट्रिंग्स दा अनुवाद करना जां अनुकूलित करना
बूटस्ट्रैप 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>