জাভাস্ক্রিপ্ট, জকিউয়ারি বা ভ্যানিলা ব্যবহার করে কীভাবে একটি চেকবাক্স চেক / চেক করা যায় না?
জাভাস্ক্রিপ্ট, জকিউয়ারি বা ভ্যানিলা ব্যবহার করে কীভাবে একটি চেকবাক্স চেক / চেক করা যায় না?
উত্তর:
javascript:
// Check
document.getElementById("checkbox").checked = true;
// Uncheck
document.getElementById("checkbox").checked = false;
jQuery (1.6+):
// Check
$("#checkbox").prop("checked", true);
// Uncheck
$("#checkbox").prop("checked", false);
jQuery (1.5।):
// Check
$("#checkbox").attr("checked", true);
// Uncheck
$("#checkbox").attr("checked", false);
attr
বা prop
?
.checked = true/false
ট্রিগার করে না change
:
গুরুত্বপূর্ণ আচরণ যা এখনও উল্লেখ করা হয়নি:
প্রোগ্রামযুক্তভাবে চেক করা বৈশিষ্ট্যটি সেট করা , change
চেকবক্সের ইভেন্টটিকে আগুন দেয় না ।
এই ঝাঁকুনিতে নিজেকে দেখুন:
http://jsfiddle.net/fjaeger/L9z9t04p/4/
(ক্রোড 46, ফায়ারফক্স 41 এবং আইই 11-তে পরীক্ষিত ফিডল)
click()
পদ্ধতিকোনও দিন আপনি নিজেকে কোড লিখনের সন্ধান করতে পারেন, যা ইভেন্টটি বরখাস্ত হওয়ার উপর নির্ভর করে। ইভেন্টটি আগুন ধরেছে তা নিশ্চিত করতে, click()
চেকবক্সের উপাদানটির পদ্ধতিটি কল করুন:
document.getElementById('checkbox').click();
যাইহোক, এটি চেকবাক্সের নির্দিষ্ট করা স্থিতি টগল করে, এটি নির্দিষ্টভাবে true
বা এতে সেট করার পরিবর্তে false
। মনে রাখবেন যে change
ইভেন্টটি কেবল তখনই চালিত হওয়া উচিত, যখন চেক করা বৈশিষ্ট্যটি আসলে পরিবর্তিত হয়।
এটি jQuery উপায়ে প্রযোজ্য: বৈশিষ্ট্যটি ব্যবহার করে prop
বা ব্যবহার করে attr
, change
ইভেন্টটিকে আগুন দেয় না ।
checked
একটি নির্দিষ্ট মান সেট করাপদ্ধতিটি checked
কল করার আগে আপনি বৈশিষ্ট্যটি পরীক্ষা করতে পারেন click()
। উদাহরণ:
function toggle(checked) {
var elm = document.getElementById('checkbox');
if (checked != elm.checked) {
elm.click();
}
}
ক্লিক করার পদ্ধতি সম্পর্কে এখানে আরও পড়ুন:
https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/click
elm.dispatchEvent(new Event('change'));
যাচাই করতে:
document.getElementById("id-of-checkbox").checked = true;
চেক করতে:
document.getElementById("id-of-checkbox").checked = false;
আমরা একটি কণা হিসাবে চেকবক্স চেক করতে পারেন,
$('id of the checkbox')[0].checked = true
এবং দ্বারা চেক করা,
$('id of the checkbox')[0].checked = false
আমি লক্ষ করতে চাই, যে শূন্য খালি স্ট্রিংয়ের জন্য 'চেকড' বৈশিষ্ট্যটি সেট করা একটি চেক বাক্সে নিয়ে যায়।
সুতরাং আপনি যদি 'পরীক্ষিত' বৈশিষ্ট্যটিকে "মিথ্যা" হিসাবে সেট করেন , চেকবক্সটি চেক করা হবে। আমি খালি স্ট্রিং, এর মান সেট করতে হয়েছে নাল বা বুলিয়ান মান মিথ্যা অর্ডার নিশ্চিত চেকবক্সটি চেক করা হয়নি করতে হবে।
এটা চেষ্টা কর:
//Check
document.getElementById('checkbox').setAttribute('checked', 'checked');
//UnCheck
document.getElementById('chk').removeAttribute('checked');
তাহলে কিছু কারণে, আপনি না করার জন্য একটি রান চান (না পারেন বা) .click()
চেকবক্সটি উপাদান উপর, আপনি কেবল এর মান সরাসরি তার .checked সম্পত্তি (একটি মাধ্যমে পরিবর্তন করতে পারেন IDL অ্যাট্রিবিউট এর <input type="checkbox">
)।
নোট করুন যে এটি করার ফলে সাধারণত সম্পর্কিত ঘটনা ( পরিবর্তন ) জ্বলে ওঠে না তাই কোনও সম্পর্কিত ইভেন্ট হ্যান্ডলারের সাথে কাজ করে এমন একটি সম্পূর্ণ সমাধান পেতে আপনাকে ম্যানুয়ালি এটিকে ফায়ার করতে হবে।
কাঁচা জাভাস্ক্রিপ্ট (ES6) এ এখানে কার্যকরী উদাহরণ রয়েছে:
class ButtonCheck {
constructor() {
let ourCheckBox = null;
this.ourCheckBox = document.querySelector('#checkboxID');
let checkBoxButton = null;
this.checkBoxButton = document.querySelector('#checkboxID+button[aria-label="checkboxID"]');
let checkEvent = new Event('change');
this.checkBoxButton.addEventListener('click', function() {
let checkBox = this.ourCheckBox;
//toggle the checkbox: invert its state!
checkBox.checked = !checkBox.checked;
//let other things know the checkbox changed
checkBox.dispatchEvent(checkEvent);
}.bind(this), true);
this.eventHandler = function(e) {
document.querySelector('.checkboxfeedback').insertAdjacentHTML('beforeend', '<br />Event occurred on checkbox! Type: ' + e.type + ' checkbox state now: ' + this.ourCheckBox.checked);
}
//demonstration: we will see change events regardless of whether the checkbox is clicked or the button
this.ourCheckBox.addEventListener('change', function(e) {
this.eventHandler(e);
}.bind(this), true);
//demonstration: if we bind a click handler only to the checkbox, we only see clicks from the checkbox
this.ourCheckBox.addEventListener('click', function(e) {
this.eventHandler(e);
}.bind(this), true);
}
}
var init = function() {
const checkIt = new ButtonCheck();
}
if (document.readyState != 'loading') {
init;
} else {
document.addEventListener('DOMContentLoaded', init);
}
<input type="checkbox" id="checkboxID" />
<button aria-label="checkboxID">Change the checkbox!</button>
<div class="checkboxfeedback">No changes yet!</div>
আপনি যদি এটি চালান এবং চেকবক্স এবং বোতাম উভয়টিতে ক্লিক করেন তবে আপনার কীভাবে এটি কাজ করে তা অনুধাবন করা উচিত।
নোট করুন যে আমি বংশবৃদ্ধি / সরলতার জন্য ডকুমেন্ট.কোয়ারী নির্বাচনকারী ব্যবহার করেছি, তবে এটি নির্ধারকের কাছে প্রদত্ত আইডিটি সহজেই তৈরি করা যেতে পারে, বা এটি একটি চেকবাক্সের জন্য আরিয়া-লেবেল হিসাবে কাজ করে এমন সমস্ত বোতামের ক্ষেত্রে প্রযোজ্য হতে পারে (দ্রষ্টব্য আমি বোতামটিতে কোনও আইডি সেট করার এবং চেকবক্সটিকে একটি এরিয়া-লেবেল্ডবি দেওয়া বিরক্ত করেনি, যা এই পদ্ধতিটি ব্যবহার করে করা উচিত) বা এটি আরও প্রসারিত করার জন্য অন্য কোনও উপায়। শেষ দুটি addEventListener
গুলি এটি কীভাবে কাজ করে তা ডেমো করতে।
একক পরীক্ষার জন্য চেষ্টা করুন
বহু চেষ্টা করার জন্য
আমি বর্তমানের উত্তরগুলির সাথে একমত, তবে আমার ক্ষেত্রে এটি কার্যকর হয় না, আমি আশা করি এই কোডটি ভবিষ্যতে কাউকে সহায়তা করবে:
// check
$('#checkbox_id').click()