চেকবক্সটি jQuery এর সাথে চেক করা হয়েছে কিনা তা পরীক্ষা করুন


1187

চেকবক্স অ্যারের আইডি ব্যবহার করে চেকবক্স অ্যারেতে একটি চেকবক্স চেক করা হয় কিনা তা আমি কীভাবে চেক করতে পারি?

আমি নিম্নলিখিত কোডটি ব্যবহার করছি, তবে এটি আইডি নির্বিশেষে চেক করা চেকবক্সগুলির গণনাটি সর্বদা প্রদান করে।

function isCheckedById(id) {
    alert(id);
    var checked = $("input[@id=" + id + "]:checked").length;
    alert(checked);

    if (checked == 0) {
        return false;
    } else {
        return true;
    }
}

একটি চেকবক্স অ্যারে ? কখনও এরকম জিনিসের কথা শুনিনি। এটি কি জিকিউরি নির্দিষ্ট, বা একটি প্লাগইন / উইজেট?
পেক্কা

2
একটি চেকবক্স অ্যারের অর্থ হ'ল: ইনপুট টাইপ = "চেকবাক্স" নাম = "চেক []" আইডি = "চেক []" মান = "আপেল"> <ইনপুট টাইপ = "চেকবক্স" নাম = "চেক []" আইডি = "chk []" মান = "কলা"> <ইনপুট টাইপ = "চেকবক্স" নাম = "চেক []" আইডি = "চেক []" মান = "কমলা"> ইত্যাদি
জেক

2
একটি চেকবক্স অ্যারেতে কি সমস্যা? আপনি কীভাবে ইনপুট "প্রয়োগযোগ্য সমস্ত পরীক্ষা করে দেখুন"?
নিকফ

5
আপনার idগুলি অনন্য কিনা তা নিশ্চিত করুন ! name(এবং এক্ষেত্রে হওয়া উচিত) পুনরাবৃত্তি করতে পারে তবে আপনি নকল করে দিলে আপনি প্রচুর অদ্ভুত জিনিসগুলি দেখতে পাচ্ছেন id! = ডি
জেফ রুপার্ট

এটি কাজ করার জন্য আমাকে "@" সরিয়ে ফেলতে হয়েছিল। এছাড়াও, আপনি সর্বশেষ 5 টি লাইন 1 তে মেনেফিট করতে পারেন: ফিরে (পরীক্ষিত! = 0);
বি ক্লে শ্যানন

উত্তর:


688

আইডিগুলি অবশ্যই আপনার নথিতে অনন্য হওয়া উচিত , এর অর্থ এই যে আপনার এটি করা উচিত নয় :

<input type="checkbox" name="chk[]" id="chk[]" value="Apples" />
<input type="checkbox" name="chk[]" id="chk[]" value="Bananas" />

পরিবর্তে, আইডিটি ড্রপ করুন এবং তারপরে তাদের নাম বা একটি উপাদান যুক্ত করে নির্বাচন করুন:

<fieldset id="checkArray">
    <input type="checkbox" name="chk[]" value="Apples" />

    <input type="checkbox" name="chk[]" value="Bananas" />
</fieldset>

এবং এখন jQuery:

var atLeastOneIsChecked = $('#checkArray:checkbox:checked').length > 0;
//there should be no space between identifier and selector

// or, without the container:

var atLeastOneIsChecked = $('input[name="chk[]"]:checked').length > 0;

আমার জন্য ইনপুট নামের ডাবল উক্তি ব্যতীত কাজ করেছেন: ইনপুট [নাম = বহুবিধ []]: চেক করা হয়েছে, ধন্যবাদ!
আলেজান্দ্রো কুইরোজ

30
কেন $('#checkArray :checkbox:checked').length > 0;যখন আরও সহজ $('#checkArray').checkedকাজ করে এবং আরও সংস্করণে পাওয়া যায় তখন কেন ব্যবহার করবেন ?
ডন চ্যাডেল

5
@ অডম্যান এটি কাজ করে, কেবল কোনও জেকারি অবজেক্টে নয়। $ (এলেম) এর পরিবর্তে। চেক করা হয়েছে, এলেম কোডের চেষ্টা করুন।
ড্যান উইলিয়ামস

1
@ ডানউইলিয়ামস হ্যাঁ তবে মিমক্র্রে যে উদাহরণ দিয়েছেন তা নয়।
Oddman

দ্বিতীয়টি আমার পক্ষে কাজ করেছিল। ধন্যবাদ !! var atLeastOneIsChecked = $('input[name="chk[]"]:checked').length > 0;
ডেভিড সিলভা-বার্রেরা

2024
$('#' + id).is(":checked")

চেকবক্সটি চেক করা থাকলে তা পাওয়া যায়।

একই নামের চেকবক্সগুলির একটি অ্যারের জন্য আপনি চেক করাগুলির তালিকার তালিকা পেতে পারেন:

var $boxes = $('input[name=thename]:checked');

তারপরে লুপ করার জন্য এবং যা যা পরীক্ষা করা হয়েছে তা আপনি করতে পারেন তা দেখতে:

$boxes.each(function(){
    // Do stuff here with this
});

কতগুলি পরীক্ষা করা হয়েছে তা জানতে আপনি করতে পারেন:

$boxes.length;

2
আর একটি উপায় $('#'+id).attr('checked'), যা $('#' + id).is(":checked")আইএমও মনে রাখার সমান তবে সহজ but
জুবিন

85
@ জুবিন: সতর্ক থাকুন .attr('checked')। এর আচরণ jQuery 1.6 এ পরিবর্তিত হয়েছে। এটি ফিরে আসত falseবা true। এখন এটি ফিরে আসে undefinedবা "checked".is(':checked')এই সমস্যা নেই।
জোয়ে অ্যাডামস

1
@ জন বোকার: নেক্রো মন্তব্যের জন্য দুঃখিত তবে, এটি কেন $('.ClassName').is(':checked')কাজ করছে বলে মনে হচ্ছে না $('#' + id).is(":checked")তবে করছে? এক আইডিতে এবং একজনের দ্বারা শ্রেণিবদ্ধ হয়ে দেখা যায় from
মাইক_ওব্রায়ান

@ মাইক_ওব্রায়ান সমস্যাটি হতে পারে যে সেই শ্রেণীর নামের সাথে একাধিক চেকবক্স রয়েছে। এটি (': চেক করা') কেবলমাত্র একটি উপাদানে কাজ করে।
জন বোকার

5
দ্রষ্টব্য: আকার () jQuery 1.8 থেকে
অবচয়

312
$('#checkbox').is(':checked'); 

উপরের কোডটি চেকবক্সটি চেক করা থাকলে বা মিথ্যা না হলে সত্যটি প্রত্যাবর্তন করে।


6
useful (এটি) .is (': চেক করা') ব্যবহার করার সময় খুব দরকারী; ধন্যবাদ!
পিনয়স্ট্যাক ওভারফ্লাওয়ার

এই পদ্ধতিতে চেকবক্সটি চেক করা হয়েছে কিনা তা পরীক্ষা করতে সহায়তা করে যেখানে আপনি কীভাবে এটি নির্বাচন করতে জানেন, ধন্যবাদ
ওমর ইসইদ

এটি আমার পক্ষে কাজ করেছিল, আমি এটি আগে ব্যবহার করেছি var isChecked = $('#CheckboxID').attr('checked') ? true : false; তবে সর্বদা সঠিক মানটি ফেরত পাই না। সূতরাং ধন্যবাদ!
leiit

120

নিম্নলিখিত সমস্ত পদ্ধতি দরকারী:

$('#checkbox').is(":checked")

$('#checkbox').prop('checked')

$('#checkbox')[0].checked

$('#checkbox').get(0).checked

এটি সুপারিশ করা হয় যে ডোমলেট বা ইনলাইন "this.checked" এড়ানো উচিত পরিবর্তে পদ্ধতিতে jQuery ইভেন্ট শ্রোতার ব্যবহার করা উচিত।


98

চেকবক্সটি চেক করা হয়েছে কিনা তা পরীক্ষা করতে jQuery কোড:

if($('input[name="checkBoxName"]').is(':checked'))
{
  // checked
}else
{
 // unchecked
}

বিকল্পভাবে:

if($('input[name="checkBoxName"]:checked'))
{
    // checked
}else{
  // unchecked
}

4
প্রথম সমাধান অনুপস্থিত :... সঠিক এগুলির মধ্যে একটি: if(('input[name="checkBoxName"]').is(':checked'))
আয়েরেন্দির

অনুপস্থিত ডলার চিহ্ন ($), এটি হওয়া উচিত if($('input[name="checkBoxName"]').is(':checked'))
পেনি লিউ

দ্বিতীয়টি কখনই এই elseব্লকটি চালাবে না , যেহেতু একটি jQuery অবজেক্ট, এতে কোনও মিলের উপাদান না থাকলেও এটি "সত্যবাদী"। .lengthশেষে যোগ করুন , তারপরে আপনি কথা বলছেন।
হেরেটিক বানর 18 ই

69

চেক করা গুণাবলী সম্পর্কে মনে রাখা সবচেয়ে গুরুত্বপূর্ণ ধারণাটি হ'ল এটি চেক করা সম্পত্তির সাথে মিল নয়। বৈশিষ্ট্যটি আসলে ডিফল্টচেকড সম্পত্তিটির সাথে মিলে যায় এবং কেবলমাত্র চেকবক্সের প্রাথমিক মান সেট করতে ব্যবহার করা উচিত। চেক করা বৈশিষ্ট্যের মান চেকবাক্সের অবস্থার সাথে পরিবর্তিত হয় না, যখন পরীক্ষিত সম্পত্তিটি করে। সুতরাং, একটি চেকবক্স চেক করা আছে কিনা তা নির্ধারণের ক্রস-ব্রাউজার-সামঞ্জস্যপূর্ণ উপায় সম্পত্তি ব্যবহার করা

নীচের সমস্ত পদ্ধতি সম্ভব

elem.checked 

$(elem).prop("checked") 

$(elem).is(":checked") 


29

JQuery ডকুমেন্টেশন অনুসারে চেকবক্সটি চেক করা আছে কিনা তা যাচাই করার জন্য নিম্নলিখিত উপায় রয়েছে ways উদাহরণস্বরূপ একটি চেকবক্স বিবেচনা করি ( সমস্ত উদাহরণ সহ ওয়ার্কিং জেসফিডেল পরীক্ষা করুন )

<input type="checkbox" name="mycheckbox" id="mycheckbox" />
<br><br>
<input type="button" id="test-with-checked" value="Test with checked" />
<input type="button" id="test-with-is" value="Test with is" />
<input type="button" id="test-with-prop" value="Test with prop" />

উদাহরণ 1 - পরীক্ষিত সহ

$("#test-with-checked").on("click", function(){
    if(mycheckbox.checked) {
        alert("Checkbox is checked.");
    } else {
        alert("Checkbox is unchecked.");
    }
}); 

উদাহরণ 2 - jQuery সহ, দ্রষ্টব্য -: পরীক্ষা করা হয়েছে

var check;
$("#test-with-is").on("click", function(){
    check = $("#mycheckbox").is(":checked");
    if(check) {
        alert("Checkbox is checked.");
    } else {
        alert("Checkbox is unchecked.");
    }
}); 

উদাহরণ 3 - jQuery প্রপ সঙ্গে

var check;
$("#test-with-prop").on("click", function(){
    check = $("#mycheckbox").prop("checked");
    if(check) {
         alert("Checkbox is checked.");
    } else {
        alert("Checkbox is unchecked.");
    }
}); 

ওয়ার্কিং জেসফিডেল চেক করুন


26

আপনি এটি চেষ্টা করতে পারেন:

<script>
function checkAllCheckBox(value)
{
   if($('#select_all_').is(':checked')){
   $(".check_").attr ( "checked" ,"checked" );
    }
    else
    {
        $(".check_").removeAttr('checked');
    }

 }

</script>
<input type="checkbox" name="chkbox" id="select_all_" value="1" />


<input type="checkbox" name="chkbox" class="check_" value="Apples" />
<input type="checkbox" name="chkbox" class="check_" value="Bananas" />
<input type="checkbox" name="chkbox" class="check_" value="Apples" />
<input type="checkbox" name="chkbox" class="check_" value="Bananas" />

এটি এখন আর জিনিসগুলি করার একটি ভাল উপায় নয়, কারণ এটি attrকেবলমাত্র এইচটিএমএল-তে গুণাবলীর মানকে প্রতিফলিত করে, ডোমের সম্পত্তি মানটি নয়। দেখুন ডকুমেন্টেশনattr , যেখানে এটি বলে "পুনরুদ্ধার করতে এবং যেমন পরিবর্তন করে DOM বৈশিষ্ট্য checked, selectedঅথবা disabledফর্ম উপাদানের রাষ্ট্র, ব্যবহার .prop()পদ্ধতি।", এবং ডকুমেন্টেশনprop যেখানে এটি বলে, " .prop()পদ্ধতি সেট ব্যবহার করা উচিত disabledএবং checkedপরিবর্তে এর .attr()পদ্ধতি। "
হেরেটিক বানর

21

আপনি jquery দ্বারা নিম্নলিখিত প্রস্তাবিত কোড ব্যবহার করতে পারেন।

if ( elem.checked ) {};
if ( $( elem ).prop( "checked" ) ) {};
if ( $( elem ).is( ":checked" ) ) {};

20

আমি জানি ওপি jquery চায় তবে আমার ক্ষেত্রে খাঁটি জেএস এর উত্তর ছিল তাই আমার মতো যদি কেউ এখানে থাকেন এবং jquery না রাখেন বা এটি ব্যবহার করতে না চান - এখানে জেএসের উত্তর:

document.getElementById("myCheck").checked

আইডি মাইচেকের সাথে ইনপুটটি যদি চেক করা না হয় এবং এটি পরীক্ষা না করা হয় তবে এটি সত্য প্রত্যাবর্তন করে।

যে হিসাবে সহজ।


11
মানে যে $("#myCheck")[0].checkedjquery কাজ করবে! : ডি
সানকারন

10

আপনি এটি সহজভাবে করতে পারেন;

ওয়ার্কিং ফিডল

এইচটিএমএল

<input id="checkbox" type="checkbox" />

jQuery এর

$(document).ready(function () {
    var ckbox = $('#checkbox');

    $('input').on('click',function () {
        if (ckbox.is(':checked')) {
            alert('You have Checked it');
        } else {
            alert('You Un-Checked it');
        }
    });
});

বা এমনকি সহজ;

$("#checkbox").attr("checked") ? alert("Checked") : alert("Unchecked");

যদি checkboxচেক করা থাকে তবে তা trueঅন্যথায় ফিরে আসবেundefined


or even simpler;->$("#checkbox").checked
ডন চ্যাডেল

10

এটি আমি একটি ধারণা যা আমি প্রায়শই ব্যবহার করি:

var active = $('#modal-check-visible').prop("checked") ? 1 : 0 ;

যদি চেক করা হয়, তবে এটি 1 ফিরে আসবে; অন্যথায় এটি 0 ফিরে আসবে।


7

চেকবক্সটি পরীক্ষা এবং সেট করার জন্য সহজ ডেমো।

জিসফিডাল !

$('.attr-value-name').click(function() {
    if($(this).parent().find('input[type="checkbox"]').is(':checked'))
    {
        $(this).parent().find('input[type="checkbox"]').prop('checked', false);
    }
    else
    {
        $(this).parent().find('input[type="checkbox"]').prop('checked', true);
    }
});

7

শুধু আমার উদাহরণে বলতে গেলে পরিস্থিতিটি একটি ডায়ালগ বক্স ছিল যা ডায়ালগ বন্ধ করার আগে চেক বাক্সটি যাচাই করেছিল। উপরের কিছুই নেই এবং কীভাবে চেকবক্সটি jQuery এ চেকবক্স চেক করা আছে কিনা তা যাচাই করবেন? এবং jQuery যদি চেকবক্সটি চেক করা হয় তবে তা কাজ করে না।

শেষে

<input class="cb" id="rd" type="checkbox">
<input class="cb" id="fd" type="checkbox">

var fd=$('.cb#fd').is(':checked');
var rd= $('.cb#rd').is(':checked');

এটি কাজ করে তাই ক্লাসের পরে আইডি কল করে। বরং শুধু আইডি এটি এই পৃষ্ঠায় নেস্টেড DOM উপাদানগুলির কারণে সমস্যা তৈরি হতে পারে। উপরে কাজ ছিল।


6

একটি আইডি সহ চেকবক্সের জন্য

<input id="id_input_checkbox13" type="checkbox"></input>

আপনি সহজভাবে করতে পারেন

$("#id_input_checkbox13").prop('checked')

উপরের সিনট্যাক্সের জন্য আপনি ফিরে পাবেন trueবা পাবেন false। আপনি যদি এটি ব্যবহার করতে পারেন তবে সাধারণ বুলিয়ান অভিব্যক্তি হিসাবে ধারাটি ব্যবহার করতে পারেন।


5

এরকম কিছু সাহায্য করতে পারে

togglecheckBoxs =  function( objCheckBox ) {

    var boolAllChecked = true;

    if( false == objCheckBox.checked ) {
        $('#checkAll').prop( 'checked',false );
    } else {
        $( 'input[id^="someIds_"]' ).each( function( chkboxIndex, chkbox ) {
            if( false == chkbox.checked ) {
                $('#checkAll').prop( 'checked',false );
                boolAllChecked = false;
            }
        });

        if( true == boolAllChecked ) {
            $('#checkAll').prop( 'checked',true );
        }
    }
}

5

আসলে, jsperf.com অনুসারে, ডিওএম অপারেশনগুলি দ্রুত হয়, তারপরে $ ()। প্রোপ () এর পরে $ () হয় () হয়!)

এখানে বাক্য গঠন রয়েছে:

var checkbox = $('#'+id);
/* OR var checkbox = $("input[name=checkbox1]"); whichever is best */

/* The DOM way - The fastest */
if(checkbox[0].checked == true)
   alert('Checkbox is checked!!');

/* Using jQuery .prop() - The second fastest */
if(checkbox.prop('checked') == true)
   alert('Checkbox is checked!!');

/* Using jQuery .is() - The slowest in the lot */
if(checkbox.is(':checked') == true)
   alert('Checkbox is checked!!');

আমি ব্যক্তিগতভাবে পছন্দ করা .prop()। বিপরীত .is(), এটি মান নির্ধারণ করতেও ব্যবহার করা যেতে পারে।


4

টগল চেকবক্স চেক করা হয়েছে

$("#checkall").click(function(){
    $("input:checkbox").prop( 'checked',$(this).is(":checked") );
})

2

এই কোডটি ব্যবহার করে আপনি চেক করতে পারেন কমপক্ষে একটি চেকবক্স নির্বাচন করা হয়েছে বা বিভিন্ন চেকবক্স গ্রুপে বা একাধিক চেকবক্স থেকে নয়। এটি ব্যবহার করে আপনাকে আইডি বা গতিশীল আইডি অপসারণ করতে হবে না। এই কোডটি একই আইডি সহ কাজ করে।

রেফারেন্স লিংক

<label class="control-label col-sm-4">Check Box 2</label>
    <input type="checkbox" name="checkbox2" id="checkbox21" value=ck1 /> ck1<br />
    <input type="checkbox" name="checkbox2" id="checkbox22" value=ck2 /> ck2<br />

<label class="control-label col-sm-4">Check Box 3</label>
    <input type="checkbox" name="checkbox3" id="checkbox31" value=ck3 /> ck3<br />
    <input type="checkbox" name="checkbox3" id="checkbox32" value=ck4 /> ck4<br />

<script>
function checkFormData() {
    if (!$('input[name=checkbox2]:checked').length > 0) {
        document.getElementById("errMessage").innerHTML = "Check Box 2 can not be null";
        return false;
    }
    if (!$('input[name=checkbox3]:checked').length > 0) {
        document.getElementById("errMessage").innerHTML = "Check Box 3 can not be null";
        return false;
    }
    alert("Success");
    return true;
}
</script>

প্রাথমিক তথ্য: এইচটিএমএল উপাদান আইডিগুলি পুনরাবৃত্তি হবে না (যেমন: আইডি = "চেকবক্স 2", আইডি = "চেকবক্স 3")। এটি একটি ভাল অনুশীলন নয়। আমরা কোনও পৃষ্ঠায় একাধিকবার ক্লাস ব্যবহার করতে পারি।
আনন্দ সোমসেখর

1

যেহেতু এটি 2019 এর মাঝামাঝি এবং jQuery মাঝে মাঝে ভ্যুজেএস, প্রতিক্রিয়া ইত্যাদির মতো জিনিসগুলির পিছনে পিছনে যায় Here

<script>
  // Replace 'admincheckbox' both variable and ID with whatever suits.

  window.onload = function() {
    const admincheckbox = document.getElementById("admincheckbox");
    admincheckbox.addEventListener('click', function() {
      if(admincheckbox.checked){
        alert('Checked');
      } else {
        alert('Unchecked');
      }
    });
  }
</script>

0

আপনার প্রশ্নটি পরিষ্কার নয়: আপনি ইনপুটটিতে "চেকবক্স অ্যারে আইডি" দিতে এবং true/falseআউটপুট পেতে চান - এই পদ্ধতিতে আপনি জানেন না কোন চেকবক্সটি চেক করা হয়েছিল (আপনার ফাংশনটির নাম অনুসারে)। সুতরাং নীচে আমার বুকের প্রস্তাব দেওয়া আছে isCheckedByIdযা ইনপুট নেওয়ার সময় চেকবক্স idএবং আউটপুট ফেরত নেবে true/false(এটি খুব সহজ তবে আপনার আইডি কীওয়ার্ড হওয়া উচিত নয়),

this[id].checked


-7

নীচে কোড ব্যবহার করুন

<script>

$(document).ready(function () {
  $("[id$='chkSendMail']").attr("onchange", "ShowMailSection()");
}

function ShowMailSection() {
  if ($("[id$='chkSendMail'][type='checkbox']:checked").length >0){
      $("[id$='SecEmail']").removeClass("Hide");
  }
</script>

সত্যি? কীভাবে$(function() { $("[id$='chkSendMail']").on("change", ShowMailSection); });
এমপ্লুঞ্জন

এবং এগুলি সমস্ত চেকবাক্স তাই $("[id$='chkSendMail']:checked]")ঠিক কাজ করা উচিত
এমপি্লুঞ্জন
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.