Jquery যদি রেডিও বোতাম চেক করা হয়


150

সম্ভাব্য সদৃশ:
নির্দিষ্ট রেডিও বোতামটি পরীক্ষা করা হয়

এই মুহুর্তে আমার কাছে এই দুটি রেডিও বোতাম রয়েছে যাতে ব্যবহারকারীরা সিদ্ধান্ত নিতে পারে যে তাদের দামের অন্তর্ভুক্ত ডাকের দরকার আছে কি না:

<input type="radio" id="postageyes" name="postage" value="Yes" /> Yes
<input type="radio" id="postageno" name="postage" value="No" /> No

'হ্যাঁ' রেডিও বোতামটি চেক করা হয়েছে কিনা তা যাচাই করার জন্য আমার জিকিউরিটি ব্যবহার করা দরকার, এবং যদি তা হয় তবে একটি অ্যাপেন্ডেশন ফাংশন করুন। কেউ আমাকে বলতে পারেন আমি কীভাবে এটি করব?

কোন সাহায্যের জন্য ধন্যবাদ

সম্পাদনা:

আমি আমার কোডটি এতে আপডেট করেছি, তবে এটি কাজ করছে না। আমি কি ভুল কিছু করছি?

<script type='text/javascript'>
// <![CDATA[
jQuery(document).ready(function(){

$('input:radio[name="postage"]').change(function(){
    if($(this).val() == 'Yes'){
       alert("test");
    }
});

});

// ]]>
</script>

1
@ ড্যানিয়েল এইচ: আপনার আপডেটে: এটি ঠিকঠাক কাজ করছে !
শেফ

এটি আশ্চর্যজনক, এটি কেবল আমার ওয়েবসাইটে কাজ করছে না। কমপক্ষে আমি জানি কোডটি সঠিক, আমি এটিতে কী ভুল রয়েছে তা সন্ধান করার চেষ্টা করব, উত্তরগুলির জন্য ধন্যবাদ!
ড্যানিয়েল এইচ

উত্তর:


285
$('input:radio[name="postage"]').change(
    function(){
        if ($(this).is(':checked') && $(this).val() == 'Yes') {
            // append goes here
        }
    });

বা, উপরের - আবার - কিছুটা কম অতিরিক্ত অতিরিক্ত জিকুয়ুরি ব্যবহার করে :

$('input:radio[name="postage"]').change(
    function(){
        if (this.checked && this.value == 'Yes') {
            // note that, as per comments, the 'changed'
            // <input> will *always* be checked, as the change
            // event only fires on checking an <input>, not
            // on un-checking it.
            // append goes here
        }
    });

সংশোধিত (কিছু উন্নত) jQuery:

// defines a div element with the text "You're appendin'!"
// assigns that div to the variable 'appended'
var appended = $('<div />').text("You're appendin'!");

// assigns the 'id' of "appended" to the 'appended' element
appended.id = 'appended';

// 1. selects '<input type="radio" />' elements with the 'name' attribute of 'postage'
// 2. assigns the onChange/onchange event handler
$('input:radio[name="postage"]').change(
    function(){

        // checks that the clicked radio button is the one of value 'Yes'
        // the value of the element is the one that's checked (as noted by @shef in comments)
        if ($(this).val() == 'Yes') {

            // appends the 'appended' element to the 'body' tag
            $(appended).appendTo('body');
        }
        else {

            // if it's the 'No' button removes the 'appended' element.
            $(appended).remove();
        }
    });

জেএস ফিডল ডেমো

এবং আরও, একটি হালকা আপডেট (যেহেতু আমি স্নিপেটস পাশাপাশি জেএস ফিডাল লিঙ্কগুলি অন্তর্ভুক্ত করার জন্য সম্পাদনা করছিলাম), যাতে <input />উপাদানগুলি <label>এস এর সাথে মোড়ানোর জন্য <input />- প্রাসঙ্গিক আপডেট করার জন্য পাঠ্যে ক্লিক করার অনুমতি দিন - এবং তৈরির উপায়গুলি পরিবর্তন করে সংযোজন সামগ্রী:

var appended = $('<div />', {
  'id': 'appended',
  'text': 'Appended content'
});
$('input:radio[name="postage"]').change(function() {
  if ($(this).val() == 'Yes') {
    $(appended).appendTo('body');
  } else {
    $(appended).remove();
  }
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<label>
  <input type="radio" id="postageyes" name="postage" value="Yes" />Yes</label>
<label>
  <input type="radio" id="postageno" name="postage" value="No" />No</label>

জেএস ফিডল ডেমো

এছাড়াও, যদি আপনাকে কেবল ব্যবহারকারী দ্বারা কোন উপাদানটি পরীক্ষা করা হয় তার উপর নির্ভর করে বিষয়বস্তু প্রদর্শন করতে হবে, একটি সামান্য আপডেট যা একটি স্পষ্ট শো / লুকান ব্যবহার করে দৃশ্যমানতা টগল করবে:

// caching a reference to the dependant/conditional content:
var conditionalContent = $('#conditional'),
    // caching a reference to the group of inputs, since we're using that
    // same group twice:
    group = $('input[type=radio][name=postage]');

// binding the change event-handler:
group.change(function() {
  // toggling the visibility of the conditionalContent, which will
  // be shown if the assessment returns true and hidden otherwise:
  conditionalContent.toggle(group.filter(':checked').val() === 'Yes');
  // triggering the change event on the group, to appropriately show/hide
  // the conditionalContent on page-load/DOM-ready:
}).change();
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<label>
  <input type="radio" id="postageyes" name="postage" value="Yes" />Yes</label>
<label>
  <input type="radio" id="postageno" name="postage" value="No" />No</label>
<div id="conditional">
  <p>This should only show when the 'Yes' radio &lt;input&gt; element is checked.</p>
</div>

এবং, অবশেষে, কেবল সিএসএস ব্যবহার করে:

/* setting the default of the conditionally-displayed content
to hidden: */
#conditional {
  display: none;
}

/* if the #postageyes element is checked then the general sibling of
that element, with the id of 'conditional', will be shown: */
#postageyes:checked ~ #conditional {
  display: block;
}
<!-- note that the <input> elements are now not wrapped in the <label> elements,
in order that the #conditional element is a (subsequent) sibling of the radio
<input> elements: -->
<input type="radio" id="postageyes" name="postage" value="Yes" />
<label for="postageyes">Yes</label>
<input type="radio" id="postageno" name="postage" value="No" />
<label for="postageno">No</label>
<div id="conditional">
  <p>This should only show when the 'Yes' radio &lt;input&gt; element is checked.</p>
</div>

জেএস ফিডল ডেমো

তথ্যসূত্র:


3
এটি পরীক্ষা করা হয়েছে কিনা তা দেখার দরকার নেই। অন্যথায় এর মান কখনও হবে না। সম্পদের অপচয়!
শেফ

22

এটা চেষ্টা কর

if($("input:radio[name=postage]").is(":checked")){
  //Code to append goes here
}

12

এটার মতো কিছু:

if($('#postageyes').is(':checked')) {
// do stuff
}

3
JQuery অবজেক্ট সর্বদা সত্যবাদী। $(...).lengthপরিবর্তে আপনি ব্যবহার করতে পারেন ।
pimvdb

মানে #postageyes:checkedনাকি $('#postageyes').is(':checked')?
শেফ

@ পিমভিডিবি jQuery ডক্সis() অনুসারে একটি বুলিয়ান দেয়। তাই কলিং .length()ভেঙে গেছে। দস্তাবেজগুলি থেকে: "অন্যান্য ফিল্টারিং পদ্ধতির মতো নয়। - api.jquery.com/is
আসফ

7
$('input:radio[name="postage"]').change(function(){
    if($(this).val() === 'Yes'){
       // append stuff
    }
});

এটি রেডিও বোতামগুলিতে পরিবর্তিত ইভেন্টের জন্য শুনবে। ব্যবহারকারী ক্লিক করার সময় Yes, ইভেন্টটি আগুন জ্বলে উঠবে এবং আপনি ডিওমে আপনার পছন্দসই কিছু সংযোজন করতে সক্ষম হবেন।



4
$("input").bind('click', function(e){
   if ($(this).val() == 'Yes') {
        $("body").append('whatever');
   }
});

এই সম্পর্কে খুব নিশ্চিত না তবে, $("#postageyes:checked"সবসময় সত্য ফিরে আসবে না ? .lengthএটি কাজ করার জন্য আপনার কি ব্যবহার করতে হবে না?
ফিল

"বা" এবং তার পরে সমস্ত কিছু মুছে ফেলা হয়েছে
জেনেসিস


0
jQuery('input[name="inputName"]:checked').val()

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

বুঝেছি. পরবর্তী উত্তরের একটি থাকবে।
বেঞ্জামিন

0

এটি পরিবর্তিত ইভেন্টটি শুনবে। আমি অন্যের কাছ থেকে উত্তরগুলি চেষ্টা করেছি কিন্তু সেগুলি আমার পক্ষে কার্যকর হয়নি এবং শেষ পর্যন্ত, এইটি কাজ করেছিল।

$('input:radio[name="postage"]').change(function(){
    if($(this).is(":checked")){
        alert("lksdahflk");
    }
});
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.