javascript रेडियो बटन को अनचेक कैसे करें?




jquery radio-button (13)

प्रयत्न

$(this).attr("checked" , false );

मेरे पास रेडियो बटन का समूह है जिसे मैं jQuery का उपयोग करके AJAX फ़ॉर्म सबमिट करने के बाद अनचेक करना चाहता हूं। मेरे पास निम्न कार्य है:

function clearForm(){
  $('#frm input[type="text"]').each(function(){
      $(this).val("");  
  });
  $('#frm input[type="radio":checked]').each(function(){
      $(this).checked = false;  
  });
 }

इस फ़ंक्शन की सहायता से, मैं टेक्स्ट बॉक्स पर मान साफ़ कर सकता हूं, लेकिन मैं रेडियो बटन के मानों को साफ़ नहीं कर सकता।

वैसे, मैंने $(this).val(""); भी कोशिश की $(this).val(""); लेकिन यह काम नहीं किया।


आपको each समारोह की आवश्यकता नहीं होगी

$("input:radio").attr("checked", false);

या

$("input:radio").removeAttr("checked");

वही आपके टेक्स्टबॉक्स पर भी लागू होना चाहिए:

$('#frm input[type="text"]').val("");

लेकिन आप इसे सुधार सकते हैं

$('#frm input:text').val("");

या तो (सादा जेएस)

this.checked = false;

या (jQuery)

$(this).prop('checked', false);
// Note that the pre-jQuery 1.6 idiom was
// $(this).attr('checked', false);

Attr () और prop () के बीच अंतर पर स्पष्टीकरण के लिए jQuery प्रोप () सहायता पृष्ठ देखें और क्यों प्रोप () अब बेहतर है।
प्रोप () मई 2011 में jQuery 1.6 के साथ पेश किया गया था।


function setRadio(obj) 
{
    if($("input[name='r_"+obj.value+"']").val() == 0 ){
      obj.checked = true
     $("input[name='r_"+obj.value+"']").val(1);
    }else{
      obj.checked = false;
      $("input[name='r_"+obj.value+"']").val(0);
    }

}

<input type="radio" id="planoT" name="planoT[{ID_PLANO}]" value="{ID_PLANO}" onclick="setRadio(this)" > <input type="hidden" id="r_{ID_PLANO}" name="r_{ID_PLANO}" value="0" >

: डी


धन्यवाद पैट्रिक, तुमने मेरा दिन बनाया! यह मूसडाउन है जिसका उपयोग आप करना है। हालांकि मैंने कोड में सुधार किया है ताकि आप रेडियो बटन के समूह को संभाल सकें।

//We need to bind click handler as well
//as FF sets button checked after mousedown, but before click
$('input:radio').bind('click mousedown', (function() {
    //Capture radio button status within its handler scope,
    //so we do not use any global vars and every radio button keeps its own status.
    //This required to uncheck them later.
    //We need to store status separately as browser updates checked status before click handler called,
    //so radio button will always be checked.
    var isChecked;

    return function(event) {
        //console.log(event.type + ": " + this.checked);

        if(event.type == 'click') {
            //console.log(isChecked);

            if(isChecked) {
                //Uncheck and update status
                isChecked = this.checked = false;
            } else {
                //Update status
                //Browser will check the button by itself
                isChecked = true;

                //Do something else if radio button selected
                /*
                if(this.value == 'somevalue') {
                    doSomething();
                } else {
                    doSomethingElse();
                }
                */
            }
    } else {
        //Get the right status before browser sets it
        //We need to use onmousedown event here, as it is the only cross-browser compatible event for radio buttons
        isChecked = this.checked;
    }
}})());

आप केवल चेकबॉक्स का उपयोग करके रेडियोधटन व्यवहार का अनुकरण कर सकते हैं:

<input type="checkbox" class="fakeRadio" checked />
<input type="checkbox" class="fakeRadio" />
<input type="checkbox" class="fakeRadio" />

फिर, आप इस सरल कोड का उपयोग अपने लिए काम करने के लिए कर सकते हैं:

$(".fakeRadio").click(function(){
    $(".fakeRadio").prop( "checked", false );
    $(this).prop( "checked", true );
});

यह ठीक काम करता है और आपके पास प्रत्येक बटन के व्यवहार पर अधिक नियंत्रण होता है।

आप इसे अपने आप से आजमा सकते हैं: http://jsfiddle.net/almircampos/n1zvrs0c/

यह कांटा आपको टिप्पणी में अनुरोध के अनुसार सभी को अचयनित करने देता है: http://jsfiddle.net/5ry8n4f4/


इसे इस्तेमाल करो

$("input[name='nameOfYourRadioButton']").attr("checked", false);

रेडियो और रेडियो समूह के लिए:

$(document).ready(function() {
    $(document).find("input:checked[type='radio']").addClass('bounce');   
    $("input[type='radio']").click(function() {
        $(this).prop('checked', false);
        $(this).toggleClass('bounce');

        if( $(this).hasClass('bounce') ) {
            $(this).prop('checked', true);
            $(document).find("input:not(:checked)[type='radio']").removeClass('bounce');
        }
    });
});

JQuery के लिए बस निम्नलिखित कोड डालें:

jQuery("input:radio").removeAttr("checked");

और जावास्क्रिप्ट के लिए:

$("input:radio").removeAttr("checked");

किसी भी foreach पाश, .each () fubction या किसी भी चीज रखने की जरूरत नहीं है


इसे आज़माएं, यह चाल करेगा:

        $(document).ready(function() {
           $("input[type='radio']").mousedown(function(e) {
                if ($(this).attr("checked") == true) {
                   setTimeout("$('input[id=" + $(this).attr('id') + "]').removeAttr('checked');", 200);}
                else {
                    return true
                }
            });
        });

$('input[id^="rad"]').dblclick(function(){
    var nombre = $(this).attr('id');
    var checked =  $(this).is(":checked") ;
    if(checked){
        $("input[id="+nombre+"]:radio").prop( "checked", false );
    }
});

प्रत्येक बार जब आप चेक किए गए रेडियो में डबल क्लिक करते हैं तो चेक में गलत परिवर्तन होते हैं

मेरे रेडियो id=radxxxxxxxx साथ शुरू id=radxxxxxxxx क्योंकि मैं इस आईडी चयनकर्ता का उपयोग करता हूं।


$('#frm input[type="radio":checked]').each(function(){
   $(this).checked = false;  
  });

यह लगभग अच्छा है लेकिन आप [0]

सही - >> $(this)[0].checked = false;


function clearForm(){
  $('#frm input[type="text"]').each(function(){
      $(this).val("");  
  });
  $('#frm input[type="radio"]:checked').each(function(){
      $(this).attr('checked', false);  
  });
 }

सही चयनकर्ता है: #frm input[type="radio"]:checked #frm input[type="radio":checked] नहीं #frm input[type="radio"]:checked #frm input[type="radio":checked]





dynamic-forms