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


478

আমি ইতিমধ্যে সমস্ত সম্ভাব্য উপায় চেষ্টা করেছি, কিন্তু আমি এখনও এটি কাজ করিনি। আমার একটি মোডাল উইন্ডো রয়েছে যা checkboxআমি চাই যখন মোডালটি খোলা হয়, তখনcheckbox চেক বা আনচেক একটি ডাটাবেস মানের উপর ভিত্তি করে করা উচিত। (আমার কাছে এটি ইতিমধ্যে অন্যের সাথে কাজ করার জন্য ক্ষেত্র তৈরি হয়েছে)) এটি পরীক্ষা করার চেষ্টা শুরু করেছিলাম তবে এটি কার্যকর হয়নি।

আমার এইচটিএমএল ডিভি:

<div id="fModal" class="modal" >
    ...
    <div class="row-form">
        <div class="span12">
            <span class="top title">Estado</span>

          <input type="checkbox"  id="estado_cat" class="ibtn">
       </div>
    </div>             
</div>

এবং jquery:

$("#estado_cat").prop( "checked", true );

আমি attrএবং অন্যদের এখানে ফোরামে দেখেও চেষ্টা করেছি , কিন্তু কেউ কাজ করছে বলে মনে হয় না। কেউ আমাকে সঠিকভাবে নির্দেশ করতে পারেন?

সম্পাদনা: ঠিক আছে, আমি এখানে সত্যিই কিছু মিস করছি ... যদি চেক বাক্স পৃষ্ঠাটিতে থাকে তবে আমি কোড ব্যবহার করে চেক / আনচেক করতে পারি, তবে এটি মডেল উইন্ডোতে রয়েছে, আমি পারছি না। আমি কয়েক ডজন বিভিন্ন উপায়ে চেষ্টা করেছি ...

আমার একটি লিঙ্ক রয়েছে যা মডেলটি খোলার কথা:

এবং jquery ক্লিকটি "শুনুন" করতে এবং ডেটাবেস থেকে আগত ডেটা দিয়ে কিছু পাঠ্য বাক্স পূরণ করার মতো কিছু ক্রিয়াকলাপ চালায়। আমি চাই সবকিছুই কাজ করে তবে সমস্যাটি হ'ল আমি কোড ব্যবহার করে চেকবক্স / চেকড চেকবাক্স সেট করতে পারি না। অনুগ্রহ করে সাহায্য করবেন!

$(function() {
 $(".editButton").click(function(){
       var id = $(this).data('id'); 
       $.ajax({
          type: "POST",
          url: "process.php",
          dataType:"json",
          data: { id: id, op: "edit" },
        }).done(function( data ) {
//the next two lines work fine, i.e., it grabs the value from database and fills the textboxes
          $("#nome_categoria").val( data['nome_categoria'] );
          $("#descricao_categoria").val( data['descricao_categoria'] );
//then I tried to set the checkbox checked (because its unchecked by default) and it does not work
           $("#estado_cat").prop("checked", true);
        $('#fModal').modal('show');
});
    evt.preventDefault();
    return false;
    });     
});

মডেলটি খুললে মোডাল ডিভের উপর কোন শ্রেণি প্রয়োগ করা হয়? এছাড়াও আপনি কীভাবে ডাটাবেস মানটি পরীক্ষা করেন - এজ্যাক্স ব্যবহার করে বা এটি ইতিমধ্যে প্রাক-আনয়ন এবং কোনও ভেরিয়েবলে সঞ্চিত?
ব্যবহারকারী 1428716

মডেল উইন্ডো লোড করার পরে চেক বাক্সটি সেট করুন আমার মনে হয় আপনি মডেল উইন্ডোটি লোড করার আগে আপনি চেক বক্সটি সেট করছেন। $ ( '# fModal') মোডাল ( 'প্রদর্শনী')। $ ( "# estado_cat") ATTR ( "চেক করা", "চেক করা")।
ভিনিথ ভাস্করান

উত্তর:


804

আপনাকে 'প্রোপ' ফাংশনটি ব্যবহার করতে হবে:

.prop('checked', true);

JQuery 1.6 এর আগে ( ব্যবহারকারী 2063626 এর উত্তর দেখুন ):

.attr('checked','checked')

5
আপনার কাছে সঠিক উত্তর বলে মনে হচ্ছে। আপনি বিস্তারিত বলতে পারেন? stackoverflow.com/a/5876747/29182
Ziggy

1
এটা জানা ভালো. JQuery 3.3.x এর মাইগ্রেশন ডকুমেন্টেশনের মধ্য দিয়ে যাওয়ার সময় এটিকে অবহেলা করা হয়েছে
reaper_unique

1
জেনে রাখা ভাল যে আপনি প্রাথমিকভাবে ভেবেছিলাম jQuery এর নতুন সংস্করণগুলিতে আপনি অ্যাটর ব্যবহার করতে পারবেন না
Kaloyan

75

প্রস্তাবিত সমস্ত উত্তর নিয়েছি এবং সেগুলি আমার পরিস্থিতির সাথে প্রয়োগ করে - সত্য (বাক্সটি চেক করা উচিত) বা মিথ্যা (বাক্সটি চেক করা উচিত নয়) এর ভিত্তিতে একটি চেকবাক্স চেক বা চেক করার চেষ্টা করে - আমি উপরের সমস্তটি চেষ্টা করেছিলাম এবং পাওয়া গেছে যে .প্রপ ("পরীক্ষিত", সত্য) এবং .প্রপ ("পরীক্ষিত", মিথ্যা) ব্যবহার করে ) ব্যবহার করা সঠিক সমাধান ছিল।

আমি এখনও মন্তব্য বা আপ উত্তর যুক্ত করতে পারি না, তবে আমার মনে হয়েছে এটি কথোপকথনে যোগ করার জন্য যথেষ্ট গুরুত্বপূর্ণ।

ফুলক্যালেন্ডার পরিবর্তনের জন্য লংহ্যান্ড কোডটি এখানে বলা হয়েছে যে যদি "অলডে" পুনরুদ্ধার করা মানটি সত্য হয় তবে আইডি "এমনকি_লাল্ডে_ইন" সহ চেকবক্সটি চেক করুন:

if (allDay)
{
    $( "#even_allday_yn").prop('checked', true);
}
else
{
    $( "#even_allday_yn").prop('checked', false);
}

48
কেন শুধু একটি এক লাইনে নয়? $( "#even_allday_yn").prop('checked', allDay);
জাভিয়ের হায়োজ

3
তিনি সম্ভাব্য মূল্যবোধগুলি প্রদর্শনের চেষ্টা করছিলেন। আপনি এখানে কীভাবে এই জাতীয় উদাহরণ ছাড়াই "অলডে" এর আসল মূল্য জানতে পারবেন?
সুরেশ ফালাহাটি

1
@ জাভিয়ার হায়োজ এটি কার্যকর হয়, এবং কেবলমাত্র যদি, AllDay 'সত্য' বা 'মিথ্যা' একটি লিটারেরাল মান হিসাবে ফেরত দেয় - খাঁটি বাইনারি নয় one চেকবাক্সগুলি এইচটিএমএল-তে খারাপভাবে ডিজাইন করা হয়েছে এবং তাদের চেক করা স্ট্যাটাসটি খুব আলাদা উপায়ে প্রকাশ করা যেতে পারে। আমার জানা নিরাপদ এবং একমাত্র উপায় হ'ল: AllDay === 'সত্য'? $ ('# even_allday_yn) .prop ("চেক করা", সত্য): $ (' # even_allday_yn) .প্রপ ("পরীক্ষিত", মিথ্যা)। কঠোর সাম্য অপারেটরটি লক্ষ্য করুন।
ব্রাইস কসটিলাস

1
$('#even_allday_yn').prop('checked', allDay === true)কাজ করবে কারণ allDay === trueএকটি বুলিয়ান ফলাফল দেয়।
বাম ক্লিককেন

58

ছেলে কোড নীচে চেষ্টা:

$("div.row-form input[type='checkbox']").attr('checked','checked')

অথবা

$("div.row-form #estado_cat").attr("checked","checked");

অথবা

$("div.row-form #estado_cat").attr("checked",true);

26
কীঅফজে-র উত্তর হিসাবে, .prop('checked', true)পরিবর্তে ব্যবহার করুন attr- আমি ঠিক একই ইস্যুতে ছুটে এসেছি এবং propকাজ করছি।
semmelbroesel

3
এফওয়াইআই যদি আপনি :checkedসিউডো-সিলেক্টর বা অন্যান্য নেটিভ চেকবাক্স এইচটিএমএল বৈশিষ্ট্যগুলি ব্যবহার করতে চান তবে আপনাকে অবশ্যই ব্যবহার করতে হবে .prop
বেনাস্টান

1
এটি চেষ্টা করেও এটি কার্যকর হয়নি তবে যখন আমি কোডটি changed ("div.row-form #estado_cat") এ পরিবর্তন করেছি prop প্রপ ("চেক করা", "চেক করা"); এটা কাজ করে। (প্রপ্রেস এট্রি পরিবর্তন)
জিম ইভান্স

1
দুর্ভাগ্যক্রমে প্রপ jQuery 1.6 এবং উচ্চতর, সুতরাং যদি আপনি এমন কোনও উত্তরাধিকার কাঠামোতে আটকে থাকেন যা আপনার পক্ষে কাজ করে না
ওল্ফার-পূর্ব

.attr().prop()jQuery 1.6+ এর জন্য পূর্ববর্তী সংস্করণগুলিতে যাওয়ার উপায় ।
vapcguy

26

চেকবক্সটি উপস্থিত হওয়ার সাথে সাথেই "চেকড" বৈশিষ্ট্যটি 'টিক্স' করে। সুতরাং একটি চেকবক্স চেক / আনচেক করতে আপনাকে বৈশিষ্ট্যটি সেট / আনসেট করতে হবে।

বাক্সটি পরীক্ষা করার জন্য:

$('#myCheckbox').attr('checked', 'checked');

বাক্সটি আনচেক করার জন্য:

$('#myCheckbox').removeAttr('checked');

পরীক্ষিত স্থিতি পরীক্ষার জন্য:

if ($('#myCheckbox').is(':checked'))

আশা করি এটা সাহায্য করবে...


19

যেহেতু আপনি একটি মডেল উইন্ডোতে রয়েছেন (গতিশীল হোক বা পৃষ্ঠায়) আপনি নিজের লক্ষ্যটি অর্জন করতে নিম্নলিখিত কোডটি ব্যবহার করতে পারেন: (আমি আমার সাইটে একই সমস্যায় পড়েছি এবং এটিই আমি এটি ঠিক করেছি)

এইচটিএমএল:

<div class="content-container" style="text-align: right;">
    <input type="checkbox" id="QueryGroupCopyQueries">
    <label for="QueryGroupCopyQueries">Create Copies</label>                                                   
</div>

কোড:

$.each(queriesToAddToGroup, function (index, query) {
    if (query.groupAddType === queriesGroupAddType.COPY) {

        // USE FIND against your dynamic window and PROP to set the value
        // if you are using JQUERY 1.6 or higher.
        $(kendoWindow).find("input#QueryGroupCopyQueries").prop("checked", true);

        return;
    }

উপরের "কেন্দো উইন্ডো" এ আমার উইন্ডোটি রয়েছে (খনিটি গতিশীল, তবে পৃষ্ঠায় সরাসরি কোনও উপাদানকে যুক্ত করার সময় আমি এটিও করি)। কোনও সারিতে COPY এর একটি বৈশিষ্ট্য রয়েছে কিনা তা দেখার জন্য আমি ডেটার অ্যারে ("ক্যোরিসটোঅড্ডটোগ্রুপ") লুপ করছি। যদি তাই হয় তবে আমি উইন্ডোর মধ্যে চেকবক্সটি চালু করতে চাই যা কোনও ব্যবহারকারী যখন এই উইন্ডো থেকে সংরক্ষণ করে সেই বৈশিষ্ট্যটি সেট করে।


4
এটি লক্ষ করা উচিত যে হাতে থাকা প্রশ্নের অন্যান্য উত্তরগুলি "কাজ" করতে পারে, propএই উত্তর হিসাবে যেমনটি ব্যবহার করা হয় তেমন ব্যবহার করা গতিশীল jQuery চেকবক্স চেকিং / আন-চেকিংয়ের সঠিক উপায় lish
জোশুয়া বার্নস

11
.attr("checked",true)
.attr("checked",false)

কার্যকর হবে। নিশ্চিত করুন সত্য এবং মিথ্যা কোটের ভিতরে নেই।


1
এটারটি চেকবক্সটি চেক করবে না, চেকটি করার জন্য প্রপ হ'ল। .prop('checked', true); এই পোস্টে আরও তথ্যের
ক্যাসিভাগাস্টিন

@ ক্যাসিভাগাস্টিন jQuery সংস্করণে নির্ভর করে। আমি jQuery 1.6 এর আগে বিশ্বাস করি .attr(), বর্ণিত হিসাবে কাজ করেছে।
vapcguy

5

আপনি নীচের দেওয়া কোড মত লিখতে পারেন।

এইচটিএমএল

<input type="checkbox"  id="estado_cat" class="ibtn">

jQuery এর

$(document).ready(function(){
    $(".ibtn").click(function(){
        $(".ibtn").attr("checked", "checked");
    });
});

আশা করি এটি আপনার পক্ষে কাজ করবে।


4

আপনি যদি কোনও পৃষ্ঠায় একটি চেকবক্স স্বয়ংক্রিয়ভাবে চেক করতে কোনও গ্রিসমোনকি স্ক্রিপ্টের জন্য এই কার্যকারিতাটি ব্যবহার করতে চান, তবে মনে রাখবেন যে কেবলমাত্র চেক করা সম্পত্তি সেট করা সম্পর্কিত ক্রিয়াকলাপটিকে ট্রিগার না করে। সেক্ষেত্রে, চেকবক্সটি "ক্লিক" করা সম্ভবত (এবং চেক করা সম্পত্তিটিও সেট করে) করবে।

$("#id").click()

3
$("#divParentClip").find("#subclip_checkbox")[0].checked=true;

সন্ধানটি অ্যারে ফিরবে, সুতরাং কেবলমাত্র একটি আইটেম থাকলেও পেতে [0] ব্যবহার করুন

আপনি যদি এটি ব্যবহার না করেন

$("#subclip_checkbox").checked=true;

এটি আমার জন্য মোজিলা ফায়ারফক্সে দুর্দান্ত কাজ করেছে


1
এটি কাজ করে, আপনার
সিএসএসে


2

আপনি সম্ভবত jQuery UI ব্যবহার করছেন যেহেতু এটি চেষ্টা করুন (যদি মন্তব্য না করেন)

 $("#fModal" ).dialog({
     open: function( event, ui ) {

     if(//some hidden value check which stores the DB value==expected value for
      checking the Checkbox)

         $("div.row-form input[type='checkbox']").attr('checked','checked');

    }
   });

@ ব্যবহারকারী 2063626 - ফাংশনের অভ্যন্তরের জেএসের অংশটি আপনার উত্তর থেকে অনুলিপি করা হয়েছে
user1428716

2

আপনি কি $("#estado_cat").checkboxradio("refresh")আপনার চেকবক্সে চালানোর চেষ্টা করেছেন ?



2

আমিও এই সমস্যার মুখোমুখি হয়েছি।

এবং এখানে আমার পুরানো কোড কাজ করে না

if(data.access == 'private'){
     Jbookaccess.removeProp("checked") ; 
    //I also have tried : Jbookaccess.removeAttr("checked") ;
 }else{
    Jbookaccess.prop("checked", true)
}

এখানে এখন আমার নতুন কোডটি কাজ করা হয়েছে:

if(data.access == 'private'){
     Jbookaccess.prop("checked",false) ;
 }else{
    Jbookaccess.prop("checked", true)
}

সুতরাং, মূল পয়েন্টটি এটি কাজ করার আগে, নিশ্চিত হয়ে নিন যে চেক করা সম্পত্তিটি রয়েছে এবং এটি সরানো হয়নি।


অনেক simplier:Jbookaccess.prop("checked", data.access != 'private');
Legionar

2

এর কারণ হল আপনি jQuery এর সবচেয়ে নতুন সংস্করণটির ক্ষেত্রেও একই ঘটনা ঘটে attr('checked')আয় 'checked'যখন prop('checked')আয় true


2
<body>
      <input id="IsActive" name="IsActive" type="checkbox" value="false">
</body>

<script>
    $('#IsActive').change(function () {
         var chk = $("#IsActive")
         var IsChecked = chk[0].checked
         if (IsChecked) {
          chk.attr('checked', 'checked')
         } 
         else {
          chk.removeAttr('checked')                            
         }
          chk.attr('value', IsChecked)
     });
</script>

এটি ক্রোম এবং ফায়ারফক্সে ভাল কাজ করে
রেজা আখলাঘি

1

মডেল উইন্ডোটি লোড করার পরে চেক বক্সটি সেট করুন। আমি মনে করি পৃষ্ঠাটি লোড করার আগে আপনি চেক বক্সটি সেট করছেন।

$('#fModal').modal('show');
$("#estado_cat").attr("checked","checked");

1

আমি জানি এটি একটি Jquery সমাধানের জন্য জিজ্ঞাসা করে, তবে আমি কেবল উল্লেখ করেছিলাম যে এটি সরল জাভাস্ক্রিপ্টে টগল করা খুব সহজ।

var element = document.getElementById("estado_cat");
element.checked = 1;

এটি বর্তমান এবং ভবিষ্যতের সমস্ত সংস্করণে কাজ করবে।


0
<div class="custom-control custom-switch">
      <input type="checkbox" class="custom-control-input" name="quiz_answer" id="customSwitch0">
      <label class="custom-control-label" for="customSwitch0"><span class="fa fa-minus fa-lg mt-1"></span></label>
  </div>

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

$(document).on('change', '.custom-switch', function(){
    let parent = $(this);
    parent.find('.custom-control-label > span').remove();
    let current_toggle = parent.find('.custom-control-input').attr('id');
    if($('#'+current_toggle+'').prop("checked") == true){
        parent.find('.custom-control-label').append('<span class="fa fa-check fa-lg mt-1"></span>');
    }
    else if($('#'+current_toggle+'').prop("checked") == false){
        parent.find('.custom-control-label').append('<span class="fa fa-minus fa-lg mt-1"></span>');
    }
})
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.