2011-07-06 19 views
26
<input type="radio" name="group" value="book_folder" onchange="makeRadioButtons()">Create New Book</input> 

<input type="radio" name="group" value="book_chapter" onchange="makeCheckBoxes()">Create New Chapter</input> 

मैं ऊपर कोड का उपयोग कर रहा था और जब मैं दूसरे रेडियो बटन को क्लिक किया है, मुझे लगता है मैं दो घटनाओं, बटन से एक है कि अनियंत्रित हो गया मिलना चाहिए सोचा और चेक किए गए बटन से दूसरे, क्योंकि तर्कसंगत रूप से बोलते हुए, दोनों बटनों को अपना राज्य बदल गया, और मैंने ऑनचेंज() ईवेंट को ऑनक्लिक() ईवेंट से बाध्य नहीं किया है। लेकिन ऐसा लगता है कि मुझे केवल बटन से एक ईवेंट मिलता है जो अभी चेक हो गया है। क्या यह एचटीएमएल में वांछित व्यवहार है? अगर यह अनचेक हो जाता है तो मैं बटन से एक ईवेंट कैसे प्राप्त कर सकता हूं?अंतर (रेडियो बटन)

उत्तर

10

इस का प्रयोग करें वांछित व्यवहार प्राप्त करने के लिए: -

var ele = document.getElementsByName('group'); 
var i = ele.length; 
for (var j = 0; j < i; j++) { 
    if (ele[j].checked) { //index has to be j. 
     alert('radio '+j+' checked'); 
    } 
    else { 
     alert('radio '+j+' unchecked'); 
    } 
} 

आशा है कि यह मदद करता है।

+0

जिसका अर्थ है कि मैं इस समारोह को प्रत्येक विनिमय कार्यक्रम से कॉल करता हूं? – samach

+0

इस कोड का उपयोग कर रहा हूँ और किसी भी तरह ele.count() शून्य है !! : एस – samach

+1

मुझे अभी पता चला .... अगर मैं 'ele.length का उपयोग करता हूं; 'यह ठीक काम करता है ... और यह बताता है कि रेडियो बटन किस प्रकार चेक किया गया था और अनचेक किया गया था ... केवल prblm यह है कि हमें सभी को पार करने के लिए मजबूर होना पड़ता है समूह में बटन। – samach

7

इनमें से दोनों चेक बॉक्स एक HTML तत्व बनाते हैं, जिसका नाम group है। यही कारण है कि आप यहां केवल एक घटना प्राप्त कर रहे हैं।

Here एक डेमो उदाहरण है जो दर्शाता है कि अलग-अलग चेकबॉक्स के माध्यम से पुन: प्रयास कैसे करें और उनके मूल्यों का उपयोग कैसे करें।

+0

उत्तर के लिए धन्यवाद। लेकिन अगर मैं उन्हें गठबंधन करता हूं ... वे सभी एक ही समय में चुने जा सकते हैं..मैं एक समय में केवल एक बटन चुनना चाहता हूं! – samach

+0

@ सलमान महमूद: मेरा संपादन देखें। –

+0

@ सलमान तो आप अपने आईडी विशेषता का उपयोग करके रेडियो को घटनाओं को संलग्न करने के लिए jQuery का उपयोग करना चाहेंगे। इस पहेली को जांचें: http://jsfiddle.net/erKURITA/ZYR6N/2/ – erKURITA

0

आप वर्तमान चेक किए गए रेडियो बटन की घाटी को बचाने के लिए एक चर का उपयोग कर सकते हैं, इसलिए जब ईवेंट निकाल दिया जाता है, तो आपके पास पुराने चेक बटन मूल्य सहेजने होंगे, और फिर आप इसका उपयोग कर सकते हैं, क्योंकि एक समय में केवल एक बार रेडियो बटन होगा चेक किया जाना चाहिए। उसके बाद आप अपडेट किए गए रेडियो बटन चेक किए गए मान को सहेज सकते हैं।

4

ब्राउज़र के लिए, एक नाम के साथ एन रेडियो बटन केवल एक नियंत्रण हैं। क्योंकि जब यह सर्वर पर पोस्ट डेटा (या डेटा प्राप्त) भेजना चाहता है, तो यह पैरामीटर की कुंजी के रूप में name विशेषता का उपयोग करता है और वर्तमान में चयनित रेडियो बटन का मान जिसका नाम उस विशेषता के रूप में है भेजा पैरामीटर। यही कारण है कि आपको समूह रेडियो को एक साथ विशेषता का नाम देना चाहिए। तो, 10 रेडियो के लिए 10 दिनों के लिए तर्कसंगत रूप से नहीं होना चाहिए। ब्राउज़र के बिंदु से, group नियंत्रण का मान book_folder से book_chapter पर बदला गया। बस इतना ही।

2
$(document).ready(function(){ 
     $("input[name='group']").on(
     { 
      'change' : function() 
        { 
         $.each($("input[name='group']"), 
           function() 
           { 
           var ObjectId, ObjectValue; 

           if($(this).is(':checked')) 
           { 
            /*Checked radio button OBJECT */ 

            console.log(this);      /* Jquery "this" Object */ 
            ObjectId = $(this).attr('id');  /* Id of above Jquery object */ 
            ObjectValue = $(this).val();   /* Value of above Jquery object */ 
           } 
            else 
           { 
            /* UnChecked radio button OBJECT */ 
            console.log(this);      /* Jquery "this" Object */ 
            ObjectId = $(this).attr('id');  /* Id of above Jquery object */ 
            ObjectValue = $(this).val();   /* Value of above Jquery object */ 
           } 
           } 
          ); 
        } 
     } 
    ); 
    }); 
संबंधित मुद्दे