2012-01-18 21 views
23

से भर दिया गया है, मेरे पास 3 divs हैं, प्रत्येक में एक डीएफयू इनपुट फ़ील्ड और अगला बटन है। मैं jQuery का एक स्निपेट लिखना चाहता हूं कि जब अगला बटन क्लिक किया जाता है तो यह बटन के समान div में सभी इनपुट फ़ील्ड्स को सुनिश्चित करने के लिए जांच करता है, शून्य नहीं है।सभी इनपुट फ़ील्ड को jQuery

मैं कोई भाग्य लेकिन मैं 100% कुछ अपने गलत, केवल मैं नहीं कर सकते प्रासंगिक जानकारी ऑनलाइन उपलब्ध सामग्री से निम्नलिखित की कोशिश की है ...

http://jsfiddle.net/xG2KS/1/

उत्तर

52

आप filter इस्तेमाल कर सकते हैं कम करने के लिए

$(".next").click(function() { 
    var empty = $(this).parent().find("input").filter(function() { 
     return this.value === ""; 
    }); 
    if(empty.length) { 
     //At least one input is empty 
    } 
}); 
: केवल उन है कि खाली हैं, और करने के लिए सभी input तत्वों के सेट क्या रहता है की length संपत्ति की जाँच

ध्यान दें कि उपरोक्त कोड में खाली की परिभाषा एक खाली स्ट्रिंग है। यदि आप खाली रिक्त स्थान को खाली के रूप में भी देखना चाहते हैं, तो आप तुलना करने से पहले मूल्य को ट्रिम करना चाहेंगे।

यह भी ध्यान रखें किफ़ंक्शन के अंदर this को jQuery में पास करने की आवश्यकता नहीं है। डीओएम तत्व में value संपत्ति होगी, और val का उपयोग करने के बजाय इसे एक्सेस करना बहुत तेज है।

यहां एक updated fiddle है।

+1

आह शानदार, धन्यवाद! – Liam

+0

कोई समस्या नहीं, खुशी है कि मैं मदद कर सकता हूं :) –

+0

इनपुट टेक्स्ट के साथ फ़ॉर्म के साथ इसका उपयोग कैसे करें और चुनें? –

6
$('.next').click(function() { 
    var emptyInputs = $(this).parent().find('input[type="text"]').filter(function() { return $(this).val() == ""; }); 
    if (emptyInputs.length) { 
     alert('Fail!'); 
    } 
}); 
+0

धन्यवाद @garvey !, क्या कोई इनपुट खाली है, अगर कोई इनपुट खाली है तो लूपिंग के लिए एक चेतावनी फेंक दें? – Liam

+0

हां, मेरे संपादन देखें। लूप के बिना। – pltvs

+0

मैं कैसे चुन सकता हूं ?? –

0
$('.next').click(function() { 
    var inputs = $(this).parent().find('input[value=""]'); 
    if (!inputs.length) { 
     // you have empty fields if this section is reached 
    } 
}); 
+0

यह कहेंगे कि कोई भी नहीं होने पर भी खाली इनपुट हैं, क्योंकि यह संपत्ति के बजाय 'मूल्य' * विशेषता * को देखता है। –

+0

मुझे फ़ॉलो नहीं है? जैसा कि मैं jQuery में भी नहीं जानता हूं, जैसा कि मुझे होना चाहिए, क्या आप समझाएंगे? –

+3

आपने तत्वों को ढूंढने के लिए एक विशेषता चयनकर्ता का उपयोग किया है जिसका 'मूल्य' विशेषता खाली स्ट्रिंग के बराबर है। 'मान' * विशेषता * तत्व पर स्वयं परिभाषित किया गया है: ''। चूंकि प्रश्न में 'इनपुट' तत्वों में से कोई भी 'मान' विशेषता नहीं है, इसलिए आपका कोड हमेशा कहता है कि वे सभी खाली हैं। –

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