jquery को विशिष्ट रूप से सभी इनपुट मिलते हैं


84

क्या किसी निश्चित रूप से इनपुट के सभी को आबाद करने का कोई तरीका है? आइए बताते हैं, कुछ ऐसी बातें:

<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...
      }
    })
 }

वह काम था, लेकिन उस मामले में, मुझे केवल फ़ील्ड.नाम और फ़ील्ड.वल्यू मिलता है, और वास्तव में मैं जो चाहता हूं, मैं प्रत्येक इनपुट तत्व के लिए एक jquery ऑब्जेक्ट चाहता हूं, इसलिए मैं उनके सीएसएस, आईडी, नाम, और एक्सेस कर सकता हूं यहां तक ​​कि उन इनपुट तत्व को चेतन करें

क्या इसके लिए कोई रास्ता है?

कृपया मुझे बताएं और अग्रिम धन्यवाद! तथा

जवाबों:


180

एक फॉर्म में सभी इनपुट के माध्यम से इसे करने के लिए आप ऐसा कर सकते हैं:

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

यह सभी प्रकार के इनपुट प्राप्त करने के लिए jquery : इनपुट चयनकर्ता का उपयोग करता है , यदि आप केवल वह पाठ चाहते हैं जो आप कर सकते हैं:

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

आदि।


3
मुझे लगता है: इनपुट उसके लिए काम करता है लेकिन अन्यथा आप कर सकते हैं:$("form#formID input[type=text],form#formID select")
TJB

ऊपर दिए गए अपने पहले उत्तर में टाइपो पर ध्यान दें। $ ("से $ होना चाहिए" (फॉर्म
मिच

1
$("form#formID :input").eachआउटपुट inputटाइप, selectटाइप और यहां तक ​​कि buttonइनपुट भी । कम से कम यह मेरे कोड में है।
तारासुख

3
@TARKUS inputबनाम :input। $ (": इनपुट") सभी jQuery फॉर्म एलिमेंट्स का चयन करता है। $ ("इनपुट") केवल इनपुट टैग का चयन करता है।
जॉनाथन एलमोर

25

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

$('#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
मुझे इस input.val () का उपयोग करके पाठ का मान नहीं मिल रहा है .. क्या आप इसमें मेरी मदद कर सकते हैं?
धवल थाकोर 8

मेरी गलती। Sory मैं उत्पादन के लिए गलत जगह देख रहा था।
धवलतकौर

3

HTML फॉर्म "एलिमेंट्स" विशेषता का उपयोग करें :

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

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


Dooh! - बहुत अधिक जानकारी। फ़ॉर्म जानकारी $ ("फ़ॉर्म: इनपुट") को देखने का एक और तेज़ तरीका आज़माएं। प्रत्येक (फ़ंक्शन (इंडेक्स) {कंसोल.लॉग (इंडेक्स, इस। टाइप, this.id, this.value, this.placeholder );));
जूल्स बार्टो
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.