2012-03-20 14 views
5

मान लीजिए मेरे पास प्रत्येक रेडियो बटन और एक टेक्स्टबॉक्स के लिए अलग-अलग मानों के साथ 3 रेडियो बटन हैं जो चेक किए गए प्रत्येक रेडियो बटन का योग प्रदर्शित करेंगे। जब भी रेडियो बटन पर क्लिक किया जाता है तो मूल्यों को पूरा करने के लिए मुझे कौन सी jQuery या जावास्क्रिप्ट ईवेंट का उपयोग करना चाहिए?या तो जावास्क्रिप्ट या jQuery का उपयोग कर रेडियो बटन मानों को कैसे समेटें?

मूल रूप से, मेरे रेडियो बटन के पास चयनित रेडियो बटन के मूल्य को प्रदर्शित करने के उद्देश्य से इसके आगे एक टेक्स्ट बॉक्स है, लेकिन मुझे टेक्स्ट बॉक्स से मूल्यों को समेटने के लिए किसी ईवेंट को फायर करने में कठिनाई हो रही है जो स्वयं ही बदलती है (चूंकि इस स्थिति पर कीप या कीडाउन काम नहीं करेगा)।

बेहतर समझाने के लिए कि मैं क्या हासिल करना चाहता हूं, नीचे मेरे काम से नमूना है। किसी भी मदद और सुझावों की सराहना की जाएगी। अग्रिम में धन्यवाद।

पीएस .: यदि यह पूछने के लिए बहुत कुछ नहीं है, तो क्या आप एक कामकाजी नमूना भी जोड़ सकते हैं ताकि मैं कामकाजी के साथ खेल सकूं। धन्यवाद।

Yes 
<input type="radio" name="radio1" value="10" /> 
No 
<input type="radio" name="radio1" value="0" /><br /> 
Yes 
<input type="radio" name="radio2" value="10" /> 
No 
<input type="radio" name="radio2" value="0" /><br /> 
Yes 
<input type="radio" name="radio3" value="10" /> 
No 
<input type="radio" name="radio3" value="0" /><br /> 
Total Score: 
<input type="text" name="sum" /> 
+0

मुझे आपके प्रश्न का पहला संस्करण पसंद आया, इसलिए आपको इसे संपादित करने की आवश्यकता नहीं थी। लेकिन अगर, कृपया कोड को हाइलाइट करना न भूलें ताकि प्रत्येक व्यक्ति HTML फॉर्म तत्व देख सके। (चयनित पाठ पर CTRL + K का उपयोग कर)। मेरा जवाब नीचे एक उदाहरण के साथ लिखा गया है। उम्मीद है कि उपयोगी इनपुट के लिए – Neysor

उत्तर

6

मुझे लगता है कि जैसे कि यह करना होगा:

function calcscore(){ 
    var score = 0; 
    $(".calc:checked").each(function(){ 
     score+=parseInt($(this).val(),10); 
    }); 
    $("input[name=sum]").val(score) 
} 
$().ready(function(){ 
    $(".calc").change(function(){ 
     calcscore() 
    }); 
}); 

यह js fiddle example

एचटीएमएल संरचना आपके बराबर है, केवल मैंने कक्षाजोड़ा, ताकि मैं उन्हें आसानी से चुन सकूं।

+0

कृपया दूसरे (बेस) तर्क के बिना 'parseInt' का कभी भी उपयोग न करें जबतक कि आप अजीब, अजीब बग्स को बाद में शिकार करना पसंद न करें। आपकी चौथी पंक्ति को 'स्कोर + = parseInt ($ (यह) .val(), 10) पढ़ना चाहिए; ' – vzwick

+0

@vzwick मैंने इसे बदल दिया। मुझे पता है कि कुछ अजीब व्यवहार हो सकते हैं, लेकिन अधिकतर यदि आपके पास कोई अग्रणी शून्य या ऐसा कुछ नहीं है :) – Neysor

+1

आप पूरी तरह से भरोसा कर सकते हैं कि उपयोगकर्ता (इस मामले में ओपी) * अंततः एक अग्रणी '0' पेश करने का प्रबंधन करेगा - मर्फी का कानून;) चीयर्स! – vzwick

0

मान लें रेडियो बटन आईडी = 'MyForm' के साथ एक फार्म के अंदर हैं, और पाठ बॉक्स आईडी = है 'totalScore' तो:

var sum = 0; 
$("#myForm").find("input[type='radio']:checked").each(function (i, e){sum+=$(e).val();}); 
$("#totalScore").val(sum); 
+0

धन्यवाद। –

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