2010-11-27 13 views
53

क्या किसी भी रूप से सभी इनपुट को पॉप्युलेट करने के कोई तरीके हैं? देना कहते हैं, इस तरह की कुछ बात:jquery विशिष्ट फॉर्म से सभी इनपुट प्राप्त करें

<form id="unique00"> 
    <input type="text" name="whatever" id="whatever" value="whatever" /> 
    <div> 
    <input type="checkbox" name="whatever" id="whatever" value="whatever" /> 
    </div> 
    <table><tr><td> 
    <input type="hidden" name="whatever" id="whatever" value="whatever" /> 
    <input type="submit" value="qweqsac" /> 
    </td></tr></table> 
</form> 
<form id="unique01"> 
    <div> 
    <input type="text" name="whatever" id="whatever" value="whatever" /> 
    <input type="checkbox" name="whatever" id="whatever" value="whatever" /> 
    </div> 
    <table><tr><td> 
    <input type="hidden" name="whatever" id="whatever" value="whatever" /> 
    </td></tr></table> 
    <select>blah...</select> 
    <input type="submit" value="qweqsac" /> 
</form> 
etc forms... forms... 

* ध्यान दें: प्रत्येक प्रपत्र इनपुट और प्रकार और भी अलग एचटीएमएल संरचना का एक अलग राशि हो सकता है

तो वहाँ कुछ से इनपुट को भरने के लिए किसी भी तरह से है फॉर्म आईडी? उदाहरण के लिए यदि मैं कुछ फॉर्म आईडी से सबमिट बटन पर क्लिक करता हूं, तो jquery मेरे लिए उन फॉर्म आईडी के भीतर सभी इनपुट पॉप्युलेट करेगा।

$("form").submit(function(){ return validateForm($(this)) }); 
function validateForm(form){ 
var retVal = true; 
var re; 
$.each(form.serializeArray(), function(i, field) { 
    var input = $('input[name='+field.name+']'); 
    field.value = $.trim(field.value); 
    switch(field.name){ 
    case "name" : 
     and another cases... 
     } 
    }) 
} 

काम, लेकिन इस मामले में, मैं केवल field.name और field.value, मिलता है और वास्तव में मैं क्या चाहते है, मैं एक चाहते हैं कि किया गया था: वर्तमान में मैं क्या कर रहा हूँ इस तरह है प्रत्येक इनपुट तत्व के लिए jQuery वस्तु, तो मैं उनके सीएसएस, आईडी, नाम का उपयोग कर सकते हैं, और यहां तक ​​कि उन इनपुट तत्व

इसके लिए किसी भी तरह से है चेतन?

मुझे पता है और अग्रिम धन्यवाद कृपया! और

उत्तर

124

एक रूप में सभी आदानों आप यह कर सकते हैं के माध्यम से पुनरावृति करने के लिए:

$("form#formID :input").each(function(){ 
var input = $(this); // This is the jquery object of the input, do what you will 
}); 

यह आदानों की सभी प्रकार प्राप्त करने के लिए, अगर आप सिर्फ पाठ आप क्या कर सकते हैं jQuery :input selector उपयोग करता है:

$("form#formID input[type=text]")//... 

आदि

+1

यह विकल्प चुनने के अलावा काम है? – AnD

+3

मुझे लगता है: इनपुट इसके लिए काम करता है लेकिन अन्यथा आप कर सकते हैं: '$ (" फॉर्म # फॉर्मआईडी इनपुट [टाइप = टेक्स्ट], फॉर्म # फॉर्मआईडी का चयन करें ")' – TJB

+0

ऊपर दिए गए पहले उत्तर में टाइप टाइप करें। $ ("$ होना चाहिए (" फॉर्म – Mitch

16

नीचे कोड प्रपत्र आईडी के साथ विशिष्ट रूप से तत्वों का विवरण प्राप्त करने के लिए मदद करता है,

$('#formId input, #formId select').each(
    function(index){ 
     var input = $(this); 
     alert('Type: ' + input.attr('type') + 'Name: ' + input.attr('name') + 'Value: ' + input.val()); 
    } 
); 

नीचे कोड सभी रूपों जो लोड हो रहा है पेज में जगह हैं से तत्वों का विवरण प्राप्त करने के लिए मदद करता है,

$('form input, form select').each(
    function(index){ 
     var input = $(this); 
     alert('Type: ' + input.attr('type') + 'Name: ' + input.attr('name') + 'Value: ' + input.val()); 
    } 
); 

नीचे कोड, जिसमें जगह हैं तत्वों की जानकारी प्राप्त करने में मदद करता लोड हो रहा है पेज भी जब तत्व टैग के अंदर जगह नहीं है,

$('input, select').each(
    function(index){ 
     var input = $(this); 
     alert('Type: ' + input.attr('type') + 'Name: ' + input.attr('name') + 'Value: ' + input.val()); 
    } 
); 

नोट: हम और अधिक तत्व टैग नाम क्या हम वस्तु में की जरूरत को जोड़ने नीचे के रूप में की तरह सूची,

Example: to get name of attribute "textarea", 

$('input, select, textarea').each(
    function(index){ 
     var input = $(this); 
     alert('Type: ' + input.attr('type') + 'Name: ' + input.attr('name') + 'Value: ' + input.val()); 
    } 
); 
1

उपयोग HTML फ़ॉर्म "तत्वों" विशेषता:

$.each($("form").elements, function(){ console.log($(this)); }

अब यह जैसे नामों प्रदान करने के लिए "इनपुट, पाठ क्षेत्र का चयन करें ..." आदि आवश्यक नहीं है

+0

दोह! - बहुत अधिक जानकारी। प्रपत्र की जानकारी $ को देखने का एक और अधिक quickerer तरह से कोशिश करें। ("प्रपत्र: इनपुट") प्रत्येक (समारोह (सूचकांक) \t {\t \t \t \t \t \t \t \t \t \t console.log (सूचकांक, this.type, इस। आईडी, this.name, this.value, this.placeholder); \t} ); –

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