var radios = document.getElementsByTagName('input');
for (i = 0; i < radios.length; i++) {
  radios[i].onclick = function () {
    if (this.checked) {
      this.checked = false;
    }
  }
}
<div id = "container">
  <input type = "radio"  name = "x"> A
  <br>
  <input type = "radio"  name = "x"> B
</div>

मैं जो चाहता हूं वह रेडियो में से एक को जांचना है और अगर मैंने इसे अनचेक करने के लिए फिर से चेक किए गए रेडियो को दबाया है लेकिन यह पहले स्थान पर भी जांच नहीं करता है

चेक किए गए रेडियो को चेक किए जाने के बाद अनचेक कैसे करें और यह भी कैसे बताएं कि यह चेक किया गया है या खाली स्थिति में है

1
Joe Doe 2 सितंबर 2019, 09:04

3 जवाब

सबसे बढ़िया उत्तर

मेरा सुझाव है कि आप checked स्थिति को नियंत्रित करने के लिए विशेषता का उपयोग करें।

var x = document.getElementsByName('x');
x.forEach(function(e) {
  e.addEventListener('click', function(ev) {
    // set checked by data-checked attribute
    if (e.getAttribute('data-checked') == 'true') {
      e.checked = false;
      e.setAttribute('data-checked', 'false');
    } else {
      e.checked = true;
      e.setAttribute('data-checked', 'true');
    }
    // update attribute of all radios
    x.forEach(function(e2) {
      e2.setAttribute('data-checked', e2.checked);
    });
  });
});
<input type="radio" name="x" data-checked="false"> A<br>
<input type="radio" name="x" data-checked="false"> B<br>
<input type="radio" name="x" data-checked="false"> C<br>
2
Chaska 2 सितंबर 2019, 06:34

निम्नलिखित कोड का प्रयोग करें। यह पूरा कोड है, इसका उपयोग करने का प्रयास करें:

 <!DOCTYPE html>
<html>
<head>
  <title></title>

</head>
<body >
  <div id = "container">
    <input type = "radio"  name = "x"> A
    <br>
    <input type = "radio"  name = "x"> B
  </div>

</body>
<script type="text/javascript">

var radios = document.getElementsByTagName('input');
for (i = 0; i < radios.length; i++) {
  radios[i].onclick = function () {
    console.log("==>" , this.checked);
    if (this.checked == false) {
      this.checked = true;
    }else{
      this.checked = true;
    }
  }
}
</script>

</html>
1
halfer 24 फरवरी 2020, 00:03

अपने वर्तमान जावास्क्रिप्ट कोड का उपयोग करते हुए, जिस क्षण आप इसे क्लिक करेंगे, जावास्क्रिप्ट कोड को पढ़ने से पहले इसकी जांच की जाएगी, इस प्रकार यह हमेशा अनियंत्रित दिखाई देगा। मेरे सुझावों के साथ (इसकी मदद नहीं की जा सकती क्षमा करें) इस तरह कुछ उपयोग करें:

var radios = document.getElementsByTagName('input');
for (i = 0; i < radios.length; i++) {
  radios[i].onmousedown = function () {
    if (this.checked) {
      this.checked = false;
      this.onchange = function () {
        this.checked = false;
      }
    }
    else  {
      this.checked = true;
      this.onchange = function () {
        this.checked = true;
      }
    }

  }
}
<div id = "container">
  <input type = "radio"  name = "x"> A
  <br>
  <input type = "radio"  name = "x"> B
</div>

चूंकि मैं आपसे सवाल नहीं कर सकता कि आप इसके बजाय चेकबॉक्स का उपयोग क्यों नहीं कर सकते, मुझे यह करना पड़ा। यह मेरे लिए वैसे भी काम करता है

1
Shiz 2 सितंबर 2019, 06:53