مکيه مواد ڏانهن وڃو Docs نيويگيشن ڏانھن وڃو
Check
in English

تصديق

HTML5 فارم جي تصديق سان توهان جي استعمال ڪندڙن کي قيمتي، قابل عمل موٽ ڏيو، برائوزر ڊفالٽ رويي يا ڪسٽم اسلوب ۽ JavaScript ذريعي.

اسان کي خبر آهي ته في الحال ڪلائنٽ-سائيڊ ڪسٽم جي تصديق واري انداز ۽ ٽول ٽائپس تائين پهچ نه آهي، ڇاڪاڻ ته اهي مددگار ٽيڪنالاجيز جي سامهون نه آهن. جڏهن اسان هڪ حل تي ڪم ڪريون ٿا، اسان سفارش ڪنداسين يا ته استعمال ڪريو سرور-سائڊ اختيار يا ڊفالٽ برائوزر جي تصديق جو طريقو.

اهو ڪيئن ڪم ڪري ٿو

ھتي آھي ڪيئن فارم جي تصديق Bootstrap سان ڪم ڪري ٿي:

  • HTML فارم جي تصديق CSS جي ٻن pseudo-ڪلاسن ذريعي لاڳو ٿئي ٿي، :invalid۽ :valid. اهو لاڳو ٿئي ٿو <input>، <select>۽ <textarea>عناصر.
  • بوٽ اسٽريپ اسڪوپ :invalid۽ :validاسلوب کي پيرن .was-validatedڪلاس تائين پهچائيندو آهي، عام طور تي <form>. ٻي صورت ۾، ڪنهن به گهربل فيلڊ کي قيمت جي بغير ڏيکاري ٿو جيئن صفحي جي لوڊ تي غلط. اهو طريقو، توهان چونڊي سگهو ٿا جڏهن انهن کي چالو ڪيو وڃي (عام طور تي فارم جمع ڪرڻ جي ڪوشش ڪئي وئي آهي).
  • فارم جي ظاهر کي ريٽ ڪرڻ لاء (مثال طور، AJAX استعمال ڪندي متحرڪ فارم جمع ڪرڻ جي صورت ۾)، جمع ڪرڻ کان پوء ٻيهر .was-validatedڪلاس کي هٽايو.<form>
  • فال بڪ جي طور تي، .is-invalid۽ .is-validڪلاس استعمال ڪري سگھجن ٿا pseudo-classes جي بدران سرور-سائڊ جي تصديق لاءِ . .was-validatedانهن کي والدين طبقي جي ضرورت ناهي .
  • سي ايس ايس جي ڪم ۾ رڪاوٽن جي ڪري، اسان (في الحال) طرزن کي لاڳو نٿا ڪري سگھون <label>جيڪي DOM ۾ فارم ڪنٽرول کان اڳ اچي وڃن بغير ڪسٽم جاوا اسڪرپٽ جي مدد کان.
  • سڀ جديد برائوزرس ڪنٽرينٽ validation API جي حمايت ڪن ٿا ، جاوا اسڪرپٽ طريقن جو هڪ سلسلو فارم ڪنٽرول جي تصديق ڪرڻ لاءِ.
  • تاثرات جا پيغام شايد برائوزر ڊفالٽ استعمال ڪري سگھن ٿا (هر برائوزر لاءِ مختلف، ۽ CSS ذريعي اڻ سڌريل) يا اضافي HTML ۽ CSS سان گڏ اسان جي حسب ضرورت موٽ واري انداز کي.
  • توھان جاوا اسڪرپٽ ۾ حسب ضرورت صحيح پيغام مهيا ڪري سگھو ٿا setCustomValidity.

انهي کي ذهن ۾ رکڻ سان، اسان جي ڪسٽم فارم جي تصديق واري انداز، اختياري سرور-سائڊ ڪلاس، ۽ برائوزر ڊفالٽ لاء هيٺ ڏنل ڊيمن تي غور ڪريو.

ڪسٽم اسلوب

ڪسٽم بوٽ اسٽريپ فارم جي تصديق واري پيغامن لاءِ، توهان novalidateکي پنهنجي <form>. هي برائوزر ڊفالٽ موٽڻ واري ٽول ٽائپس کي غير فعال ڪري ٿو، پر اڃا به JavaScript ۾ فارم جي تصديق APIs تائين رسائي فراهم ڪري ٿو. ھيٺ ڏنل فارم جمع ڪرڻ جي ڪوشش ڪريو؛ اسان جو جاوا اسڪرپٽ جمع ڪرائڻ واري بٽڻ کي روڪيندو ۽ راءِ ڏينداسين. جڏهن جمع ڪرڻ جي ڪوشش ڪئي ويندي، توهان ڏسندا :invalid۽ :validطرزون توهان جي فارم ڪنٽرولن تي لاڳو ٿينديون.

ڪسٽم راءِ جا انداز ڪسٽم رنگ، بارڊر، فوڪس اسلوب، ۽ پس منظر جي آئڪن کي بهتر موٽ ڏيڻ لاءِ لاڳو ڪندا آهن. s لاءِ پس منظر جون نشانيون <select>صرف موجود آهن .form-select، ۽ نه .form-control.

سٺو لڳندو آهي!
سٺو لڳندو آهي!
@
مھرباني ڪري ھڪڙو صارف نالو چونڊيو.
مھرباني ڪري صحيح شھر ڏيو.
مھرباني ڪري صحيح رياست چونڊيو.
مھرباني ڪري ھڪ صحيح زپ ڏيو.
توهان کي جمع ڪرڻ کان پهريان متفق ٿيڻ گهرجي.
html
<form class="row g-3 needs-validation" novalidate>
  <div class="col-md-4">
    <label for="validationCustom01" class="form-label">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-4">
    <label for="validationCustom02" class="form-label">Last name</label>
    <input type="text" class="form-control" id="validationCustom02" value="Otto" required>
    <div class="valid-feedback">
      Looks good!
    </div>
  </div>
  <div class="col-md-4">
    <label for="validationCustomUsername" class="form-label">Username</label>
    <div class="input-group has-validation">
      <span class="input-group-text" id="inputGroupPrepend">@</span>
      <input type="text" class="form-control" id="validationCustomUsername" aria-describedby="inputGroupPrepend" required>
      <div class="invalid-feedback">
        Please choose a username.
      </div>
    </div>
  </div>
  <div class="col-md-6">
    <label for="validationCustom03" class="form-label">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">
    <label for="validationCustom04" class="form-label">State</label>
    <select class="form-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">
    <label for="validationCustom05" class="form-label">Zip</label>
    <input type="text" class="form-control" id="validationCustom05" required>
    <div class="invalid-feedback">
      Please provide a valid zip.
    </div>
  </div>
  <div class="col-12">
    <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>
  <div class="col-12">
    <button class="btn btn-primary" type="submit">Submit form</button>
  </div>
</form>
// Example starter JavaScript for disabling form submissions if there are invalid fields
(() => {
  'use strict'

  // Fetch all the forms we want to apply custom Bootstrap validation styles to
  const forms = document.querySelectorAll('.needs-validation')

  // Loop over them and prevent submission
  Array.from(forms).forEach(form => {
    form.addEventListener('submit', event => {
      if (!form.checkValidity()) {
        event.preventDefault()
        event.stopPropagation()
      }

      form.classList.add('was-validated')
    }, false)
  })
})()

برائوزر ڊفالٽ

مرضي مطابق تصديق جي موٽ واري پيغامن ۾ يا فارم جي رويي کي تبديل ڪرڻ لاءِ جاوا اسڪرپٽ لکڻ ۾ دلچسپي نه آهي؟ تمام سٺو، توهان برائوزر ڊفالٽ استعمال ڪري سگهو ٿا. ھيٺ ڏنل فارم جمع ڪرڻ جي ڪوشش ڪريو. توهان جي برائوزر ۽ OS تي منحصر ڪري، توهان کي راءِ جو ٿورو مختلف انداز نظر ايندو.

جڏهن ته اهي تاثرات جا انداز CSS سان انداز نٿا ڪري سگهجن، توهان اڃا به JavaScript ذريعي راءِ جي متن کي ترتيب ڏئي سگهو ٿا.

@
html
<form class="row g-3">
  <div class="col-md-4">
    <label for="validationDefault01" class="form-label">First name</label>
    <input type="text" class="form-control" id="validationDefault01" value="Mark" required>
  </div>
  <div class="col-md-4">
    <label for="validationDefault02" class="form-label">Last name</label>
    <input type="text" class="form-control" id="validationDefault02" value="Otto" required>
  </div>
  <div class="col-md-4">
    <label for="validationDefaultUsername" class="form-label">Username</label>
    <div class="input-group">
      <span class="input-group-text" id="inputGroupPrepend2">@</span>
      <input type="text" class="form-control" id="validationDefaultUsername"  aria-describedby="inputGroupPrepend2" required>
    </div>
  </div>
  <div class="col-md-6">
    <label for="validationDefault03" class="form-label">City</label>
    <input type="text" class="form-control" id="validationDefault03" required>
  </div>
  <div class="col-md-3">
    <label for="validationDefault04" class="form-label">State</label>
    <select class="form-select" id="validationDefault04" required>
      <option selected disabled value="">Choose...</option>
      <option>...</option>
    </select>
  </div>
  <div class="col-md-3">
    <label for="validationDefault05" class="form-label">Zip</label>
    <input type="text" class="form-control" id="validationDefault05" required>
  </div>
  <div class="col-12">
    <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>
  <div class="col-12">
    <button class="btn btn-primary" type="submit">Submit form</button>
  </div>
</form>

سرور طرف

اسان ڪلائنٽ سائڊ جي تصديق کي استعمال ڪرڻ جي صلاح ڏيو ٿا، پر صورت ۾ توهان کي سرور-پاسي جي تصديق جي ضرورت آهي، توهان ظاهر ڪري سگهو ٿا غلط ۽ صحيح فارم فيلڊ سان .is-invalid۽ .is-valid. ياد رهي ته .invalid-feedbackانهن طبقن سان پڻ سهڪار آهي.

غلط شعبن لاءِ، پڪ ڪريو ته غلط راءِ/غلطي جو پيغام لاڳاپيل فارم فيلڊ سان لاڳاپيل آهي استعمال ڪندي aria-describedby(ياد رهي ته هي خاصيت هڪ کان وڌيڪ idحوالي ڪرڻ جي اجازت ڏئي ٿي، ان صورت ۾ جڏهن فيلڊ اڳ ۾ ئي اضافي فارم ٽيڪسٽ ڏانهن اشارو ڪري ٿي).

سرحد ريڊيس سان مسئلن کي حل ڪرڻ لاء ، ان پٽ گروپن کي اضافي .has-validationطبقي جي ضرورت آهي.

سٺو لڳندو آهي!
سٺو لڳندو آهي!
@
مھرباني ڪري ھڪڙو صارف نالو چونڊيو.
مھرباني ڪري صحيح شھر ڏيو.
مھرباني ڪري صحيح رياست چونڊيو.
مھرباني ڪري ھڪ صحيح زپ ڏيو.
توهان کي جمع ڪرڻ کان پهريان متفق ٿيڻ گهرجي.
html
<form class="row g-3">
  <div class="col-md-4">
    <label for="validationServer01" class="form-label">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-4">
    <label for="validationServer02" class="form-label">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 class="col-md-4">
    <label for="validationServerUsername" class="form-label">Username</label>
    <div class="input-group has-validation">
      <span class="input-group-text" id="inputGroupPrepend3">@</span>
      <input type="text" class="form-control is-invalid" id="validationServerUsername" aria-describedby="inputGroupPrepend3 validationServerUsernameFeedback" required>
      <div id="validationServerUsernameFeedback" class="invalid-feedback">
        Please choose a username.
      </div>
    </div>
  </div>
  <div class="col-md-6">
    <label for="validationServer03" class="form-label">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">
    <label for="validationServer04" class="form-label">State</label>
    <select class="form-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">
    <label for="validationServer05" class="form-label">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 class="col-12">
    <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>
  <div class="col-12">
    <button class="btn btn-primary" type="submit">Submit form</button>
  </div>
</form>

معاون عناصر

تصديق جي انداز هيٺ ڏنل فارم ڪنٽرول ۽ اجزاء لاء دستياب آهن:

  • <input>s ۽ <textarea>s سان گڏ .form-control( .form-controlان پٽ گروپن ۾ ھڪڙي تائين)
  • <select>سان.form-select
  • .form-checkايس
مهرباني ڪري ٽيڪسٽ ايريا ۾ هڪ پيغام داخل ڪريو.
مثال غلط راءِ جو متن
وڌيڪ مثال غلط راءِ جو متن
مثال غلط چونڊ راءِ
مثال غلط فارم فائل موٽ
html
<form class="was-validated">
  <div class="mb-3">
    <label for="validationTextarea" class="form-label">Textarea</label>
    <textarea class="form-control" id="validationTextarea" placeholder="Required example textarea" required></textarea>
    <div class="invalid-feedback">
      Please enter a message in the textarea.
    </div>
  </div>

  <div class="form-check mb-3">
    <input type="checkbox" class="form-check-input" id="validationFormCheck1" required>
    <label class="form-check-label" for="validationFormCheck1">Check this checkbox</label>
    <div class="invalid-feedback">Example invalid feedback text</div>
  </div>

  <div class="form-check">
    <input type="radio" class="form-check-input" id="validationFormCheck2" name="radio-stacked" required>
    <label class="form-check-label" for="validationFormCheck2">Toggle this radio</label>
  </div>
  <div class="form-check mb-3">
    <input type="radio" class="form-check-input" id="validationFormCheck3" name="radio-stacked" required>
    <label class="form-check-label" for="validationFormCheck3">Or toggle this other radio</label>
    <div class="invalid-feedback">More example invalid feedback text</div>
  </div>

  <div class="mb-3">
    <select class="form-select" required aria-label="select example">
      <option value="">Open this select menu</option>
      <option value="1">One</option>
      <option value="2">Two</option>
      <option value="3">Three</option>
    </select>
    <div class="invalid-feedback">Example invalid select feedback</div>
  </div>

  <div class="mb-3">
    <input type="file" class="form-control" aria-label="file example" required>
    <div class="invalid-feedback">Example invalid form file feedback</div>
  </div>

  <div class="mb-3">
    <button class="btn btn-primary" type="submit" disabled>Submit form</button>
  </div>
</form>

ٽول ٽِپ

جيڪڏهن توهان جي فارم جي ترتيب ان جي اجازت ڏئي ٿي، توهان هڪ اسٽائل ٿيل ٽول ٽائپ ۾ تصديق جي راءِ ڏيکارڻ لاءِ ڪلاسن .{valid|invalid}-feedbackلاءِ ڪلاسن کي تبديل ڪري سگهو ٿا. ٽول ٽائپ پوزيشننگ لاءِ ان تي .{valid|invalid}-tooltipوالدين سان گڏ هجڻ جي پڪ ڪريو . position: relativeهيٺ ڏنل مثال ۾، اسان جي ڪالمن جي طبقن ۾ اهو اڳ ۾ ئي آهي، پر توهان جي منصوبي کي متبادل سيٽ اپ جي ضرورت هجي.

سٺو لڳندو آهي!
سٺو لڳندو آهي!
@
مھرباني ڪري ھڪڙو منفرد ۽ صحيح نالو چونڊيو.
مھرباني ڪري صحيح شھر ڏيو.
مھرباني ڪري صحيح رياست چونڊيو.
مھرباني ڪري ھڪ صحيح زپ ڏيو.
html
<form class="row g-3 needs-validation" novalidate>
  <div class="col-md-4 position-relative">
    <label for="validationTooltip01" class="form-label">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-4 position-relative">
    <label for="validationTooltip02" class="form-label">Last name</label>
    <input type="text" class="form-control" id="validationTooltip02" value="Otto" required>
    <div class="valid-tooltip">
      Looks good!
    </div>
  </div>
  <div class="col-md-4 position-relative">
    <label for="validationTooltipUsername" class="form-label">Username</label>
    <div class="input-group has-validation">
      <span class="input-group-text" id="validationTooltipUsernamePrepend">@</span>
      <input type="text" class="form-control" id="validationTooltipUsername" aria-describedby="validationTooltipUsernamePrepend" required>
      <div class="invalid-tooltip">
        Please choose a unique and valid username.
      </div>
    </div>
  </div>
  <div class="col-md-6 position-relative">
    <label for="validationTooltip03" class="form-label">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 position-relative">
    <label for="validationTooltip04" class="form-label">State</label>
    <select class="form-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 position-relative">
    <label for="validationTooltip05" class="form-label">Zip</label>
    <input type="text" class="form-control" id="validationTooltip05" required>
    <div class="invalid-tooltip">
      Please provide a valid zip.
    </div>
  </div>
  <div class="col-12">
    <button class="btn btn-primary" type="submit">Submit form</button>
  </div>
</form>

ساس

متغير

$form-feedback-margin-top:          $form-text-margin-top;
$form-feedback-font-size:           $form-text-font-size;
$form-feedback-font-style:          $form-text-font-style;
$form-feedback-valid-color:         $success;
$form-feedback-invalid-color:       $danger;

$form-feedback-icon-valid-color:    $form-feedback-valid-color;
$form-feedback-icon-valid:          url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'><path fill='#{$form-feedback-icon-valid-color}' d='M2.3 6.73.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/></svg>");
$form-feedback-icon-invalid-color:  $form-feedback-invalid-color;
$form-feedback-icon-invalid:        url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' width='12' height='12' fill='none' stroke='#{$form-feedback-icon-invalid-color}'><circle cx='6' cy='6' r='4.5'/><path stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/><circle cx='6' cy='8.2' r='.6' fill='#{$form-feedback-icon-invalid-color}' stroke='none'/></svg>");

ملائيندڙ

اسان جي فارم جي تصديق جي موٽ واري انداز کي پيدا ڪرڻ لاءِ، اسان جي لوپ ذريعي، ٻه ميلاپ گڏ ڪيا ويا آهن .

@mixin form-validation-state-selector($state) {
  @if ($state == "valid" or $state == "invalid") {
    .was-validated #{if(&, "&", "")}:#{$state},
    #{if(&, "&", "")}.is-#{$state} {
      @content;
    }
  } @else {
    #{if(&, "&", "")}.is-#{$state} {
      @content;
    }
  }
}

@mixin form-validation-state(
  $state,
  $color,
  $icon,
  $tooltip-color: color-contrast($color),
  $tooltip-bg-color: rgba($color, $form-feedback-tooltip-opacity),
  $focus-box-shadow: 0 0 $input-btn-focus-blur $input-focus-width rgba($color, $input-btn-focus-color-opacity)
) {
  .#{$state}-feedback {
    display: none;
    width: 100%;
    margin-top: $form-feedback-margin-top;
    @include font-size($form-feedback-font-size);
    font-style: $form-feedback-font-style;
    color: $color;
  }

  .#{$state}-tooltip {
    position: absolute;
    top: 100%;
    z-index: 5;
    display: none;
    max-width: 100%; // Contain to parent when possible
    padding: $form-feedback-tooltip-padding-y $form-feedback-tooltip-padding-x;
    margin-top: .1rem;
    @include font-size($form-feedback-tooltip-font-size);
    line-height: $form-feedback-tooltip-line-height;
    color: $tooltip-color;
    background-color: $tooltip-bg-color;
    @include border-radius($form-feedback-tooltip-border-radius);
  }

  @include form-validation-state-selector($state) {
    ~ .#{$state}-feedback,
    ~ .#{$state}-tooltip {
      display: block;
    }
  }

  .form-control {
    @include form-validation-state-selector($state) {
      border-color: $color;

      @if $enable-validation-icons {
        padding-right: $input-height-inner;
        background-image: escape-svg($icon);
        background-repeat: no-repeat;
        background-position: right $input-height-inner-quarter center;
        background-size: $input-height-inner-half $input-height-inner-half;
      }

      &:focus {
        border-color: $color;
        box-shadow: $focus-box-shadow;
      }
    }
  }

  // stylelint-disable-next-line selector-no-qualifying-type
  textarea.form-control {
    @include form-validation-state-selector($state) {
      @if $enable-validation-icons {
        padding-right: $input-height-inner;
        background-position: top $input-height-inner-quarter right $input-height-inner-quarter;
      }
    }
  }

  .form-select {
    @include form-validation-state-selector($state) {
      border-color: $color;

      @if $enable-validation-icons {
        &:not([multiple]):not([size]),
        &:not([multiple])[size="1"] {
          padding-right: $form-select-feedback-icon-padding-end;
          background-image: escape-svg($form-select-indicator), escape-svg($icon);
          background-position: $form-select-bg-position, $form-select-feedback-icon-position;
          background-size: $form-select-bg-size, $form-select-feedback-icon-size;
        }
      }

      &:focus {
        border-color: $color;
        box-shadow: $focus-box-shadow;
      }
    }
  }

  .form-control-color {
    @include form-validation-state-selector($state) {
      @if $enable-validation-icons {
        width: add($form-color-width, $input-height-inner);
      }
    }
  }

  .form-check-input {
    @include form-validation-state-selector($state) {
      border-color: $color;

      &:checked {
        background-color: $color;
      }

      &:focus {
        box-shadow: $focus-box-shadow;
      }

      ~ .form-check-label {
        color: $color;
      }
    }
  }
  .form-check-inline .form-check-input {
    ~ .#{$state}-feedback {
      margin-left: .5em;
    }
  }

  .input-group {
    > .form-control:not(:focus),
    > .form-select:not(:focus),
    > .form-floating:not(:focus-within) {
      @include form-validation-state-selector($state) {
        @if $state == "valid" {
          z-index: 3;
        } @else if $state == "invalid" {
          z-index: 4;
        }
      }
    }
  }
}

نقشو

هي آهي تصديق جو Sass نقشو مان _variables.scss. مختلف يا اضافي رياستون پيدا ڪرڻ لاءِ هن کي مٿي ڪريو يا وڌايو.

$form-validation-states: (
  "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ٽول ٽائپس ۽ فوڪس اسٽائلز کي اوور رائيڊ ڪرڻ لاءِ جا نقشا ٽي اختياري پيٽرولر تي مشتمل هوندا.

لوپ

$form-validation-statesاسان جي تصديق واري انداز کي پيدا ڪرڻ لاء نقشي جي قيمتن کي ٻيهر ڏيڻ لاء استعمال ڪيو ويو . مٿي ڏنل Sass نقشي ۾ ڪا به تبديلي هن لوپ ذريعي توهان جي مرتب ڪيل CSS ۾ ظاهر ٿيندي.

@each $state, $data in $form-validation-states {
  @include form-validation-state($state, $data...);
}

ترتيب ڏيڻ

$form-validation-statesتصديق واري رياستون نقشي سان ساس ذريعي ترتيب ڏئي سگھجن ٿيون . اسان جي فائل ۾ واقع آهي _variables.scss، هي ساس نقشو اهو آهي ته اسان ڪيئن ٺاهيندا آهيون ڊفالٽ valid/ invalidتصديق واري رياستون. شامل ڪيو ويو آھي ھڪڙي نيسٽ ٿيل نقشو ترتيب ڏيڻ لاءِ ھر رياست جي رنگ، آئڪن، ٽول ٽائپ رنگ، ۽ فوڪس شيڊ. جڏهن ته ٻيون رياستون برائوزرن جي مدد سان نه آهن، جيڪي ڪسٽم اسلوب استعمال ڪندي آساني سان وڌيڪ پيچيده فارم موٽ شامل ڪري سگهن ٿيون.