2010-03-06 11 views
8

प्रश्न 1: को देखते हुएMootools - कैसे, चयनित रेडियो इनपुट प्रकार का मान प्राप्त करने के लिए अपने नाम से

<input type="radio" name="foo" value="1" /> 
<input type="radio" name="foo" value="2" /> 
<input type="radio" name="foo" value="3" /> 

Mootools में, कैसे मैं वापसी करते "2" "foo" का एक इनपुट दिया, कि यह सोचते हैं दूसरा रेडियो बटन क्लिक किया गया था।


प्रश्न 2: (यह संबंधित है) - समान को देखते हुए चेकबॉक्स आदानों, मैं या तो एक सरणी या अल्पविराम जाँच की मानों की सूची अलग कैसे वापसी करते हैं?

मैं इन इनपुट के मानों को Request.JSON के माध्यम से सबमिट करना चाहता हूं, इसे एक जीईटी पैरामीटर के रूप में पास कर रहा हूं।

उत्तर

17

चेकबॉक्स का नाम मान लिया जाये कि "foo", चयनित रेडियो आइटम प्राप्त करने के लिए है, तो आप उपयोग कर सकते हैं:

var values = $$('input[name=foo]:checked'​​​​​​​​​​​​​​).map(function(e) { return e.value; }); 

यह 1 आइटम के साथ एक सरणी देता है, चयनित तत्वों 'मूल्य जा रहा है।

या सिर्फ एक ऐरे के प्रोटोटाइप का विस्तार करें, और एक getFirst() विधि जोड़ें। इसी तरह

var value = $$('input[name=foo]:checked').getFirst().value; 

, प्राप्त करने के लिए सभी की जाँच चेक बॉक्स, उपयोग:

Array.implement({ 
    getFirst: function() { 
     if(this.length == 0) { 
      return null; 
     } 
     return this[0]; 
    } 
}); 

तो फिर तुम ऐसा कर सकता है

var values = $$('input[name=foo]:checked'​​​​​​​​​​​​​​).map(function(e) { return e.value; }); 

डबल डॉलर ($$) समारोह प्रयोग किया जाता है एकाधिक चयन करने के लिए एक सीएसएस चयनकर्ता के साथ तत्व। फिर केवल एक आवश्यक मूल्य प्राप्त करने के लिए उन तत्वों पर एक नक्शा (ऐरे वर्ग का हिस्सा) लागू किया जा सकता है।

आप http://mootools.net/docs/core/Utilities/Selectors

+3

विलक्षण उपयोग के लिए काम करने के लिए आसान तरीका है, बस नहीं क्यों 'formel.getElement (" इनपुट [name = foo]: चेक किया गया ") का उपयोग करें - यहां सरणी लेनदेन की कोई आवश्यकता नहीं है। मैं उस दृष्टिकोण और इसके अधिक स्केलेबल और लूप को कॉलबैक के रूप में इसके साथ कई रेडियो के माध्यम से ले जाऊंगा। –

+3

मैंने $$ का उपयोग किया क्योंकि ओपी के पास केवल प्रश्न में फ़ील्ड नाम था। लेकिन यदि फॉर्म तत्व उपलब्ध है या यह आईडी ज्ञात है, तो हम '$ ('formID') का भी उपयोग कर सकते हैं। GetElement ('input [name = foo]: चेक किया गया")। मूल्य' – Anurag

+0

धन्यवाद। मैंने '$ ('formID') getElement ('इनपुट [नाम = foo]:। जाँच की ")।रेडियो के लिए मूल्य '(जिसमें केवल एक मान हो सकता है) और' $$ ('# formID इनपुट [name = foo]: चेकबॉक्स के लिए चेक किया गया')। – philfreo

2

पर इन छद्म चयनकर्ताओं के बारे में अधिक पढ़ सकते हैं यहाँ कैसे रेडियो के मूल्य का तरीका देखें: काफी आसान ....

var value =$$('input[name=type]:checked').get('value'); 

-1

फ़ायरफ़ॉक्स में काम नहीं कुछ भी नहीं 3.15.16 अभिव्यक्ति को छोड़कर:

var रेडियो = $ ('adminForm')। GetElements ("इनपुट [नाम = 'प्रकाशित'] ") फ़िल्टर (फ़ंक्शन (ई) {if (e.checked) वापसी ई; }) [0] .Value;


अंग्रेजी के लिए खेद है !!!

0

उपरोक्त कोड फ़ायरफ़ॉक्स में ठीक काम करता है लेकिन आईई इसे बिल्कुल पसंद नहीं आया। कुछ भयानक काम के बाद इस भयानक काम के साथ आया।

जोड़ें onchange = "toggleChecked (यह)" रेडियो से प्रत्येक और फिर आप में इस समारोह को जोड़ने के लिए जे एस

function toggleChecked(el) { 
    el.checked = !el.checked; 
    el.checked = !el.checked; 
} 

फ़ाइल और उसके बाद पढ़ने के लिए कौन सा बटन चयनित किया गया है

var selectFoo; 
$$('input[name=foo]').each(function (el){ 
    if (el.checked == true) { 
     selectFoo = el.value; 
    } 
}); 

अब अगर कोई बेहतर आईई समाधान के साथ आ सकता है तो मैं इसकी सराहना करता हूं।

6

var value = $$('input[name=foo]:checked').getFirst().value; 

के लिए कोई ज़रूरत नहीं बस का उपयोग करें:

var value = $$('input[name=foo]:checked')[0].get('value'); 
2

सर्वश्रेष्ठ उत्तर weiqianglufromchina से है, लेकिन इस त्रुटि

$$('input[name=type]:checked').get('value'); 

है यह होना चाहिए

$$('input[name=RADIONAME]:checked').get('value'); 

फ़ायरफ़ॉक्स, क्रोम, एक्सप्लोरर पर परीक्षण किया गया। mootools 1.2.4/1,3

चियर्स

+0

हाँ, यह http://jsfiddle.net/2JFRh/ – eerne

+0

जाने का तरीका है, मुझे लगता है कि गहरी समस्या यह है कि वे एक सरणी वापस नहीं करना चाहते हैं, जो $$() करता है – Kristian

1

बस Mootools 1.11 में हाल ही में यह एक प्रयोग किया जाता है। मैं उपयोग करता हूं:

var value = $$('input[name=foo]).filter(function(el) { 
    return el.getProperty("checked") 
})[0];   

काफी लंबा लेकिन काम कर रहा है। एफएफ 3.x

Mootools का हालिया संस्करण एक छोटे वाक्यविन्यास का उपयोग अन्य उत्तरों के रूप में उपयोग कर सकते हैं।

2

यह मेरे लिए काम करता है।

$$('input[name=foo]:checked').pick().get('value'); 
3

जाँच रेडियो के मूल्य प्राप्त करने के लिए आसान तरीका है:

$('formID').getElement('input[name=foo]:checked').get('value'); 

MooTools 1.4.5 - getElement()

पहले वंशज तत्व जिसका टैग नाम प्रदान की टैग का मिलान हो जाता है। सीएसएस चयनकर्ता भी पारित किया जा सकता है।

उल्लेख पहले

$$('input[name=foo]:checked').get('value'); 

भी सभी चेक बॉक्स 'मूल्यों की जाँच की हो रही है, साथ 1.4.5 संस्करण

बीआर

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