2012-01-06 17 views
7

मैं चेक करना चाहते हैं रेडियो स्वचालित रूप से बटन: मैं इस कोड की कोशिश की लेकिन यह काम नहीं करता:। रेडियो बटन, 3 अलग-अलग मान मैं मान के साथ रेडियो बटन का चयन 'क्लीन "करना चाहते हैंजावास्क्रिप्ट जांच रेडियो स्वचालित रूप से बटन

कैसे ?! मैं वेबपृष्ठ पर स्वचालित रूप से रेडियो बटन की जाँच कर सकते धन्यवाद

function getElements() 
    { 

    for (i=0; i<document.getElementsByTagName('input').length; i++) 
    { 
    //if (document.getElementsByTagName('input')[i].type == 'radio') 
    if(document.getElementsByTagName('input')[i].type=='radio') 
    { 
     //if (document.getElementsByTagName('input')[i].value=='clean') 
     document.getElementsByTagName('input')[i].click(); 
    } 
    } 

मैं निम्नलिखित के रूप में कोड संशोधित:

for (i=0; i<document.getElementsByTagName('input').length; i++) 
    { 

    if(document.getElementsByTagName('input')[i].type=='radio') 
    { 


     if(document.getElementsByTagName('input')[i].value == "clean") 
     { 
     document.getElementsByTagName('input')[i].checked =true; 
     } 

    } 
    } 

लेकिन यह अभी भी काम नहीं कर रहा है :(

रेडियो बटन आईफ्रेम में हैं, क्या यह कारण हो सकता है कि कोड काम नहीं कर रहा है?

+1

हाँ, मुझे लगता है कि Manse के बारे में पता कर रहा हूँ, और अपने कोड बहुत बढ़िया है लेकिन मैं इसे काम करने में संघर्ष कर रहा हूं क्योंकि आपकी गलती नहीं है लेकिन यह मेरा ज्ञान है या मेरे ज्ञान की कमी है। मैं आपका जवाब स्वीकार करूंगा! –

+0

हाँ समस्या आईफ्रेम था और मैंने सही किया और सब कुछ आपके कोड पर ठीक काम कर रहा है मैनसे बहुत धन्यवाद, तुम मेरे आदमी हो! –

उत्तर

14

अपने रेडियो बटन "नाम" एक बहुत चीजों को आसान

<input type="radio" name="myradios" value="clean"/> 
<input type="radio" name="myradios" value="somethingelse"/> 

var elements = document.getElementsByName('myradios'); 
for (i=0;i<elements.length;i++) { 
    if(elements[i].value == "clean") { 
    elements[i].checked = true; 
    } 
} 

कार्य उदाहरण होगा दें: http://jsfiddle.net/Dwzc9/

अपडेट किया गया

getElementsByName प्रतीत नहीं होता सब IE में समर्थित होना संस्करण ... ताकि आप अपने मूल उदाहरण के आधार पर निम्नलिखित का उपयोग कर सकें:

var allElems = document.getElementsByTagName('input'); 
for (i = 0; i < allElems.length; i++) { 
    if (allElems[i].type == 'radio' && allElems[i].value == 'clean') { 
     allElems[i].checked = true; 
    } 
} 

कार्य उदाहरण: http://jsfiddle.net/Dwzc9/2/

+0

आपका कोड काम कर रहा है लेकिन समस्या मुझे लगता है IFrame है। या कुछ और इसके कारण मैं इसे सफलतापूर्वक नहीं चला सकता। –

3

आप "को चेक किया" के बदले विशेषता सेट करने का प्रयास हो सकता है।

var getElements = function() 
{ 
    var x = document.getElementsByTagName("input"); 
    var oldname = ''; 

    for(var i = 0; i < x.length; i++) 
    { 
     if(x[i].type == 'radio' && x[i].name != oldname && x[i].value == 'clean') 
     { 
      x[i].checked = true; 
      oldname = x[i].name; 
     } 
    } 
}; 

इस समारोह के साथ समस्या यह है कि यह सभी रेडियो बटन की जाँच करने, इसलिए यदि वे एक समूह (जो आमतौर पर मामला है) संबंध रखते हैं, प्रत्येक समूह का चयन किया जाएगा का प्रयास करेगा, केवल पिछले रेडियो बटन है । यदि यह आपका इरादा है, तो महान, अन्यथा यह तय करने के बारे में सोचता है कि कौन सा बटन चुना गया है, और लूप को तोड़ना है। आप ऊपर दिए गए फ़ंक्शन में देख सकते हैं कि मैंने तत्व के नाम विशेषता को चेक करके समूह में केवल पहला बटन चुनने का निर्णय लिया है।

मुझे उम्मीद है कि यह आपकी मदद करेगा!

  • मैट

अद्यतन

एक और तरीका यह, jQuery का उपयोग कर संभाल करने, होगा:

var getElements = function(){ 
    var oldname = ''; 
    $.each($('input[type="radio"]'), function(){ 
    if($(this).attr('name') != oldname && $(this).val() == 'clean'){ 
     $(this).checked = true; 
     oldname = this.name; 
    } 
    }); 
}; 
+1

यह पृष्ठ पर प्रत्येक समूह के लिए एक रेडियो बटन पर टिक लगाने जा रहा है? ओपी केवल उनको जांचना चाहता है जब उनके पास "साफ" – ManseUK

+0

का मूल्य होना चाहिए। नाम विशेषता यह है कि एचटीएमएल रेडियो बटन कैसे "समूहित होते हैं।"एक ही नाम वाला प्रत्येक बटन समूह में है। – Matt

+0

ओएच, मैंने सवाल को गलत तरीके से पढ़ा है। मैं इसे सही कर दूंगा। – Matt

संबंधित मुद्दे