2011-02-28 23 views
66

पर क्लिक करें मेरे पास 2 रेडियो बटन और jquery चल रहा है।जावास्क्रिप्ट jquery रेडियो बटन

<input type="radio" name="lom" value="1" checked> first 
<input type="radio" name="lom" value="2"> second 

अब, एक बटन के साथ मैं एक फ़ंक्शन चलाने के लिए क्लिक कर सकता हूं। जब मैं उनमें से किसी एक पर क्लिक करता हूं तो रेडियो बटन को फ़ंक्शन चलाने का तरीका क्या है?

+1

नोट। यह सर्वोत्तम नहीं है कि फॉर्म तत्व क्लिक करने का जवाब दें, क्योंकि बहुत से लोग कुंजीपटल का उपयोग करके फॉर्म नेविगेट करते हैं। – superluminary

उत्तर

121

आप jQuery 1.3

के रूप में क्या आप

$("input[@name='lom']").change(function(){ 
    // Do something interesting here 
}); 

चाहते हैं के लिए .change उपयोग कर सकते हैं आपको अब आवश्यकता '@'। चयन करने के लिए सही तरीका है:

$("input[name='lom']") 
+7

ध्यान दें कि, jQuery 1.3 के रूप में, अब आपको '@' की आवश्यकता नहीं है। चुनने का सही तरीका यह है: '$ (" इनपुट [नाम = 'लोम'] ") – lubar

+3

क्या रेडियो समाधानों के आधार पर सशर्त बयान के साथ @JohnIdol के समाधान के साथ इस समाधान को एकीकृत करना संभव है? पूर्व '$ (" इनपुट [नाम = 'लोम'] ")। बदलें (फ़ंक्शन() {अगर ($ (यह) .val() === '1') {.....// यहां मूल्यों के आधार पर शेष सशर्त बयान}; ' – LazerSharks

+0

jQuery 1.3 के अनुसार, आपको ** नाम संपत्ति के साथ ** @ @ का उपयोग नहीं करना चाहिए। यदि आप ऐसा करते हैं, तो आपको एक 'jquery.self-0a6570c ... .js? Body = 1: 1464 असीमित त्रुटि मिलेगी: सिंटेक्स त्रुटि, अपरिचित अभिव्यक्ति' त्रुटि। तो यह पसंद का मामला नहीं है। – scaryguy

6

यह आपके आईडी = radioButtonContainerId आप अभी भी onClick तदनुसार का उपयोग करें और फिर जांच जो एक चयन किया जाता है कर सकते हैं और साथ एक कंटेनर में अपने रेडियो है, तो अच्छा

$(document).ready(function() { 
    $('input:radio').change(function() { 
     alert('ole'); 
    }); 
}); 
+0

आप एक चूक गए हैं); पीठ पर। –

40

होना चाहिए कुछ फ़ंक्शंस चलाएं:

$('#radioButtonContainerId input:radio').click(function() { 
    if ($(this).val() === '1') { 
     myFunction(); 
    } else if ($(this).val() === '2') { 
     myOtherFunction(); 
    } 
    }); 
+0

धन्यवाद। यह मेरे लिए काम करता था, क्योंकि मेरा क्षेत्र एक सरणी का हिस्सा था और मैं इनपुट [name = 'xxx'] नोटेशन का उपयोग नहीं कर सका - <इनपुट प्रकार = "रेडियो" नाम = "आवश्यकता [माप_ प्रकार]" id = "Need_measure_type" मूल्य = "aaa"> – crafter

+0

क्या यह प्रतिक्रिया करता है भले ही आप नीचे टैब्स करते हैं और मार्कर को तीर के साथ ले जाते हैं? – Alisso

+0

यह मोबाइल में काम नहीं करेगा # चयनकर्ता मोबाइल में काम नहीं कर रहा है। – zawhtut

3

डीओएम खोज को प्रतिबंधित करना हमेशा अच्छा होता है। माता-पिता का भी उपयोग करना बेहतर है, ताकि संपूर्ण डोम को उलट नहीं किया जा सके।

IT IS VERY FAST

<div id="radioBtnDiv"> 
    <input name="myButton" type="radio" class="radioClass" value="manual" checked="checked"/> 
<input name="myButton" type="radio" class="radioClass" value="auto" checked="checked"/> 
</div> 



$("input[name='myButton']",$('#radioBtnDiv')).change(
    function(e) 
    { 
     // your stuffs go here 
    }); 
8

ऐसा करने के कई तरीके हैं। रेडियो बटन के चारों ओर एक कंटेनर होने पर अत्यधिक अनुशंसा की जाती है, लेकिन आप सीधे कक्षाओं पर भी कक्षा डाल सकते हैं।

<ul id="shapeList" class="radioList"> 
<li><label>Shape:</label></li> 
<li><input id="shapeList_0" class="shapeButton" type="radio" value="Circular" name="shapeList" /><label for="shapeList_0">Circular</label></li> 
<li><input id="shapeList_1" class="shapeButton" type="radio" value="Rectangular" name="shapeList" /><label for="shapeList_1">Rectangular</label></li> 
</ul> 

आप वर्ग द्वारा चयन कर सकते हैं:

$(".shapeButton").click(SetShape); 

या कंटेनर आईडी के आधार पर चयन करें: इस HTML के साथ

$("#shapeList").click(SetShape); 

या तो मामले में, घटना या तो रेडियो क्लिक करने पर ट्रिगर किया जाएगा बटन या उसके लिए लेबल, यद्यपि बाद के मामले में अजीब रूप से ("#shapeList" द्वारा चयन), लेबल पर क्लिक करने से कम से कम फ़ायरफ़ॉक्स में क्लिक फ़ंक्शन को दो कारणों से ट्रिगर किया जाएगा; कक्षा द्वारा चयन करना ऐसा नहीं करेगा।

SetShape एक समारोह है, और इस तरह दिखता है:

function SetShape() { 
    var Shape = $('.shapeButton:checked').val(); 
//dostuff 
} 

इस तरह, आप अपने बटन पर लेबल हो सकते हैं, और एक ही पेज है कि विभिन्न बातें करते हैं पर एक से अधिक रेडियो बटन सूचियों हो सकता है। आप बटन के मूल्य के आधार पर SetShape() में अलग-अलग व्यवहार सेट करके अलग-अलग चीजों में एक ही सूची में प्रत्येक अलग-अलग बटन भी कर सकते हैं।

13
<input type="radio" name="radio" value="creditcard" /> 
<input type="radio" name="radio" value="cash"/> 
<input type="radio" name="radio" value="cheque"/> 
<input type="radio" name="radio" value="instore"/> 

$("input[name='radio']:checked").val() 
+1

हालांकि यह उत्तर नहीं दिखाता है कि ईवेंट को कोड को कैसे तारित किया जाए, मुझे यह पसंद है कि इसमें रेडियो बटन समूह के मूल्य को पुनर्प्राप्त करने के बारे में जानकारी शामिल है। – Manfred

+1

$ ("इनपुट [@ नाम = 'लोम']")। बदलें (फ़ंक्शन() { // कुछ दिलचस्प यहां करें }); –

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