জাভাস্ক্রিপ্ট চেকবক্স অন চেঞ্জ করুন


130

আমার একটি ফর্মের একটি চেকবাক্স রয়েছে এবং আমি এটি নিম্নলিখিত দৃশ্যের অনুসারে কাজ করতে চাই:

  • যদি কেউ এটি পরীক্ষা করে থাকে তবে একটি পাঠ্যক্ষেত্রের মান ( totalCost) সেট করা উচিত 10
  • তারপরে, যদি আমি ফিরে যাই এবং এটিটি চেক না করি তবে একটি ফাংশন ফর্মের অন্যান্য পরামিতিগুলির calculate()মান নির্ধারণ করে totalCost

সুতরাং মূলত, আমার সেই অংশটি প্রয়োজন যেখানে আমি চেকবক্সটি পরীক্ষা করি যখন আমি একটি কাজ করি এবং যখন আমি এটিটি চেক না করি তখন আমি অন্যটি করি।


চেকবক্সিড.চেকড == সত্য / মিথ্যা your আপনার ইভেন্টটি লিখুন}
নরেশ

উত্তর:


150
function calc()
{
  if (document.getElementById('xxx').checked) 
  {
      document.getElementById('totalCost').value = 10;
  } else {
      calculate();
  }
}

এইচটিএমএল

<input type="checkbox" id="xxx" name="xxx" onclick="calc();"/>

30
এবং ব্যবহারকারী কি-বোর্ড ব্যবহার করেন?
থমথম

6
এখানে একটি জেএসফিডাল যেখানে বিভিন্ন উপায়ে পরীক্ষা করা যায়: ক্লিক, কীবোর্ড, লেবেল এবং অ্যাকসেসকি। তারা সবাই ফায়ারফক্সে ইভেন্টটি ট্রিগার করে।
রোমান স্টারকভ

4
দুর্ভাগ্যক্রমে, যখন জাভাস্ক্রিপ্টের মাধ্যমে চেকবক্সের স্থিতি পরিবর্তন করা হয় তখন ইভেন্টটি ট্রিগার করা হয় না।
StanE

2
লল, জাভাস্ক্রিপ্ট $ ('# চেকবক্স') থেকে এটি ব্যবহার করুন att $ ( '# চেকবক্সটি') ক্লিক করুন ()।
সেনাদ মেইকিন

5
পরিবর্তে আপনার অন্বেষণ ব্যবহার করা উচিত, এটি বিশেষত ওপি-র ব্যবহারের ক্ষেত্রে তৈরি করা হয়েছে। (লিঙ্ক জন্য নিচে ধন্যবাদ ReeCube) developer.mozilla.org/en-US/docs/Web/Events/change
আর্মন্দ

90

খাঁটি জাভাস্ক্রিপ্ট:

const checkbox = document.getElementById('myCheckbox')

checkbox.addEventListener('change', (event) => {
  if (event.target.checked) {
    alert('checked');
  } else {
    alert('not checked');
  }
})
My Checkbox: <input id="myCheckbox" type="checkbox" />


28

আপনি যদি jQuery ব্যবহার করেন .. তবে আমি নিম্নলিখিতগুলি প্রস্তাব করতে পারি: দ্রষ্টব্য: আমি এখানে কিছু অনুমান করেছি

$('#my_checkbox').click(function(){
    if($(this).is(':checked')){
        $('input[name="totalCost"]').val(10);
    } else {
        calculate();
    }
});

19

একটি অনক্লিক ইভেন্ট ব্যবহার করুন, কারণ একটি চেকবাক্সের প্রতিটি ক্লিক আসলে এটি পরিবর্তন করে।


29
কিবোর্ড ব্যবহার করলে ব্যবহারকারী কী করবেন?
থমথম

14
এটি স্ট্র্যাজ, তবে এটি এখনও ক্লিক করুন
সার্জস

6
প্রকৃতপক্ষে ক্লিক করুন কাজ করে, আপনি চেকবক্সটি টগল করার জন্য কোনও লেবেল ব্যবহার করার পরেও তা বরখাস্ত করা হয়। তবে আপনার 'পরিবর্তন' ইভেন্টটি আরও ভালভাবে ব্যবহার করা উচিত! 'পরিবর্তন' ইভেন্টটির জন্য এটি তৈরি করা হয়েছে: developer.mozilla.org/en-US/docs/Web/Events/
بدل

ডাবল ক্লিক সম্পর্কে কি?
চকী

4
আচ্ছা এখন যে দুটি ক্লিক আছে তাই না?
রোহমার

13

নিম্নলিখিত সমাধান jquery ব্যবহার করে। ধরে নেওয়া যাক আপনার আইডি সহ একটি চেকবক্স রয়েছে checkboxId

const checkbox = $("#checkboxId");

checkbox.change(function(event) {
    var checkbox = event.target;
    if (checkbox.checked) {
        //Checkbox has been checked
    } else {
        //Checkbox has been unchecked
    }
});


3

পরিবর্তনের বৈশিষ্ট্যটি ব্যবহার না করে অনক্লিক বৈশিষ্ট্যে ফাংশনটি বরাদ্দ করুন # দিয়ে নয়, এটির আইডি দ্বারা চেকবক্সটি উল্লেখ করুন

var checkbox = $("save_" + fieldName);
checkbox.onclick = function(event) {
    var checkbox = event.target;

    if (checkbox.checked) {
        //Checkbox has been checked
    } else {
        //Checkbox has been unchecked
    }
};

1

আমি জানি এটি উত্তম উত্তর বলে মনে হচ্ছে তবে আমি এটিকে এখানে রাখছি যাতে এটি ভবিষ্যতে অন্যদের সহায়তা করতে পারে।

মনে করুন আপনি একটি টেবিল নির্মাণ করছেন ফরচ লুপ দিয়ে। এবং একই সাথে শেষে চেকবক্সগুলি যুক্ত করুন।

<!-- Begin Loop-->
<tr>
 <td><?=$criteria?></td>
 <td><?=$indicator?></td>
 <td><?=$target?></td>
 <td>
   <div class="form-check">
    <input type="checkbox" class="form-check-input" name="active" value="<?=$id?>" <?=$status?'checked':''?>> 
<!-- mark as 'checked' if checkbox was selected on a previous save -->
   </div>
 </td>
</tr>
<!-- End of Loop -->

আপনি একটি গোপন ইনপুট সহ টেবিলের নীচে একটি বোতাম রাখুন:

<form method="post" action="/goalobj-review" id="goalobj">

 <!-- we retrieve saved checkboxes & concatenate them into a string separated by commas.i.e. $saved_data = "1,2,3"; -->

 <input type="hidden" name="result" id="selected" value="<?= $saved_data ?>>
 <button type="submit" class="btn btn-info" form="goalobj">Submit Changes</button>
</form>

আপনি আপনার স্ক্রিপ্টটি এভাবে লিখতে পারেন:

<script type="text/javascript">
    var checkboxes = document.getElementsByClassName('form-check-input');
    var i;
    var tid = setInterval(function () {
        if (document.readyState !== "complete") {
            return;
        }
        clearInterval(tid);
    for(i=0;i<checkboxes.length;i++){
        checkboxes[i].addEventListener('click',checkBoxValue);
    }
    },100);

    function checkBoxValue(event) {
        var selected = document.querySelector("input[id=selected]");
        var result = 0;
        if(this.checked) {

            if(selected.value.length > 0) {
                result = selected.value + "," + this.value;
                document.querySelector("input[id=selected]").value = result;
            } else {
                result = this.value;
                document.querySelector("input[id=selected]").value = result;
            }
        }
        if(! this.checked) { 

// trigger if unchecked. if checkbox is marked as 'checked' from a previous saved is deselected, this will also remove its corresponding value from our hidden input.

            var compact = selected.value.split(","); // split string into array
            var index = compact.indexOf(this.value); // return index of our selected checkbox
            compact.splice(index,1); // removes 1 item at specified index
            var newValue = compact.join(",") // returns a new string
            document.querySelector("input[id=selected]").value = newValue;
        }

    }
</script>

আপনার চেকবক্সের আইডিগুলি ফলাফল ভেরিয়েবলের মধ্যে "1,2" স্ট্রিং হিসাবে জমা দেওয়া হবে। তারপরে আপনি এটি চান তবে নিয়ামক স্তরে এটি বিচ্ছেদ করতে পারেন।


0

জাভাস্ক্রিপ্ট

  // on toggle method
  // to check status of checkbox
  function onToggle() {
    // check if checkbox is checked
    if (document.querySelector('#my-checkbox').checked) {
      // if checked
      console.log('checked');
    } else {
      // if unchecked
      console.log('unchecked');
    }
  }

এইচটিএমএল

<input id="my-checkbox" type="checkbox" onclick="onToggle()">


0

চেষ্টা

totalCost.value = checkbox.checked ? 10 : calculate();

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.