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>
मैं जो चाहता हूं वह रेडियो में से एक को जांचना है और अगर मैंने इसे अनचेक करने के लिए फिर से चेक किए गए रेडियो को दबाया है लेकिन यह पहले स्थान पर भी जांच नहीं करता है
चेक किए गए रेडियो को चेक किए जाने के बाद अनचेक कैसे करें और यह भी कैसे बताएं कि यह चेक किया गया है या खाली स्थिति में है
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>
निम्नलिखित कोड का प्रयोग करें। यह पूरा कोड है, इसका उपयोग करने का प्रयास करें:
<!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>
अपने वर्तमान जावास्क्रिप्ट कोड का उपयोग करते हुए, जिस क्षण आप इसे क्लिक करेंगे, जावास्क्रिप्ट कोड को पढ़ने से पहले इसकी जांच की जाएगी, इस प्रकार यह हमेशा अनियंत्रित दिखाई देगा। मेरे सुझावों के साथ (इसकी मदद नहीं की जा सकती क्षमा करें) इस तरह कुछ उपयोग करें:
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>
चूंकि मैं आपसे सवाल नहीं कर सकता कि आप इसके बजाय चेकबॉक्स का उपयोग क्यों नहीं कर सकते, मुझे यह करना पड़ा। यह मेरे लिए वैसे भी काम करता है