2009-05-11 16 views
9

मुझे यह पता लगाने की कोशिश कर रहे कठिन समय की एक बिल्ली है। JQuery सत्यापन के लिए अब 3 घंटे से अधिक उदाहरण और टूल देख रहे थे।JQuery सबमिट करने से पहले चेकबॉक्स और रेडियो बटन

मैं बस इतना करना चाहता हूं कि एक चेकबॉक्स चुना गया हो और एक रेडियो बटन, लेकिन मुझे परवाह नहीं है कि किसकी आवश्यकता है।

<form id="form1" action="/controller/action" method="post"> 
    <div class="checkbox"><input type="checkbox" name="box1" class="cBox" /><label for="box1" class="label">Box1</label></div> 
    <div class="checkbox"><input type="checkbox" name="Box2" class="cBox" /><label for="Box2" class="label">Box2</label></div> 
    <div class="checkbox"><input type="checkbox" name="Box3" class="cBox" /><label for="Box3" class="label">Box3</label></div> 
    <div class="radio"><input type="radio" name="print" value="Radio1" class="rad" /><label class="label">Radio1</label></div> 
    <div class="radio"><input type="radio" name="print" value="Radio2" class="rad" /><label class="label">Radio2</label></div> 
    <div class="radio"><input type="radio" name="print" value="Radio3" class="rad" /><label class="label">Radio3</label></div> 
    <input type="submit" value="Submit" /> 
</form> 

किसी भी मदद की सराहना की जाएगी।

+0

आप कोड का सत्यापन के साथ प्रयोग कर रहे हैं पोस्ट कर सकते हैं()? –

उत्तर

16

ऐसा करने के लिए आपको :checked चयनकर्ता का उपयोग करना होगा। हालांकि जेपी के जवाब ठीक है, मैं शायद ऐसा करने चाहते हैं:

$('#form1').submit(function() { 
    if ($('input:checkbox', this).is(':checked') && 
     $('input:radio', this).is(':checked')) { 
     // everything's fine... 
    } else { 
     alert('Please select something!'); 
     return false; 
    } 
}); 

नोटों की युगल:

  • मैं इसे is समारोह है, जो चयनकर्ता की एक बूलियन रिटर्न उपयोग करने के लिए बेहतर पढ़ता है लगता है।
  • आप :radio और :checkbox का उपयोग किसी भी रूप में सभी रेडियो और चेकबॉक्स का चयन करने के लिए शॉर्टकट के रूप में कर सकते हैं। हालांकि, according to the jQuery manual, इन चयनकर्ताओं को input निर्दिष्ट किए बिना इन चयनकर्ताओं का उपयोग करना बुरा व्यवहार है, क्योंकि वे *:checkbox और *:radio का मूल्यांकन करते हैं, अन्यथा, जो बहुत धीमे चयनकर्ता हैं।
  • दूसरे तर्क के रूप में this पास करके हम specifying a context खोज के लिए हैं, और इस प्रकार वर्तमान फॉर्म के अंदर केवल चेकबॉक्स और रेडियो इनपुट खोज रहे हैं। यदि पृष्ठ में कोई अन्य रूप होता है तो इसके बिना हमें झूठी सकारात्मक मिल सकती है।
+0

धन्यवाद, मुझे यह जानकर खुशी हो रही है कि मेरे पास पृष्ठ पर कुछ अन्य रूप होने जा रहे हैं और इससे इससे मदद मिलती है। और जवाब अभी भी सरल है। – percent20

+0

कोई समस्या नहीं है। यकीन नहीं है कि मुझे किसने गिरा दिया या क्यों, लेकिन मुझे खुशी है कि इससे मदद मिली ... –

+0

क्या यह कोड हर चेकबॉक्स और रेडियो बटन की आवश्यकता नहीं है? संपादित करें: कभी नहीं, मैंने सोचा कि हम इनपुट के माध्यम से लूपिंग कर रहे थे। –

1
$('#form1').submit(function(){ 
    if ($(':checkbox:checked', this)[0] && $(':radio:checked', this)[0]) { 
     // everything's fine... 
    } else { 
     alert('Please select something!'); 
     return false; 
    } 
}); 
+1

+1 मुझे इसे मारने के लिए +1। – geowa4

+0

धन्यवाद, मुझे अब इतनी बेवकूफ़ लगती है। यह बहुत आसान है। मैं थोड़ी देर के लिए एक दीवार पर अपने सिर धमाके जाने जा रहा हूँ। सहायता के लिए धन्यवाद। – percent20

+0

आह, संदर्भों के बारे में भूल गए। धन्यवाद पाओलो। – James

-1

यह मेरे मामले में मेरे लिए काम करता है जहां मैं उपयोगकर्ताओं को एक फॉर्म जमा करने के लिए चेकबॉक्स की जांच करना चाहता हूं।

$(document).ready(function(){ 
     $('#yourinput').required = true; 
}); 
संबंधित मुद्दे