2012-01-12 10 views
7

स्थिति मैं के साथ संघर्ष कर रहा हूँ अगर उस पृष्ठ के इस तरह दिखता है के बारे में अधिक रूपों हैं कि (hiddenId प्रत्येक प्रपत्र में अलग है) है:मैं कोई फॉर्म आईडी के साथ फॉर्म कैसे सबमिट करूं और कोई सबमिट आईडी नहीं, लेकिन ज्ञात छुपा मूल्य?

<form method="post"> 
<input type="hidden" name="hiddenId" value="111222"> 
<input type="submit" value="Proceed"> 
</form> 

<form method="post"> 
<input type="hidden" name="hiddenId" value="111333"> 
<input type="submit" value="Proceed"> 
</form> 

मैं जावास्क्रिप्ट के साथ प्रस्तुत कर सकता हूँ (मैं नहीं दिमाग का उपयोग कर दिमाग) एक विशिष्ट रूप जिसमें एक इच्छा मूल्य के छुपा आईडी शामिल है? आपके सहयोग के लिए धन्यवाद!

+1

आप फ़ॉर्म को कक्षा या आईडी क्यों नहीं दे सकते? – binnyb

+0

नाम बहिष्कृत है, आपको आईडी का उपयोग करना चाहिए। एक से अधिक तत्वों के लिए एक ही आईडी का कभी भी उपयोग न करें। –

उत्तर

7

कुछ आप मिलना चाहिए शुरू कर दिया:

var inputs = document.getElementsByTagName("input"); 
for(var i = 0; i < inputs.length; i++) { 
    if(inputs[i].type === "hidden" && inputs[i].value === "111333") { 
     inputs[i].form.submit(); 
    } 
} 

आप jQuery का उपयोग कर सकते हैं:

$("input[type='hidden'][value='something']").closest("form").submit(); 
+0

... या आप बस अपनी 'फॉर्म' संपत्ति का उपयोग कर सकते हैं ... – Neil

+0

@Neil - हाँ, यह थोड़ा बेहतर हो सकता है :) संपादित। –

+0

बहुत बहुत धन्यवाद, दोनों समाधान पूरी तरह से काम करते हैं! * मेरे जैसे डमी के लिए नोट: कोड पृष्ठ के अंत में होना चाहिए। * –

2

पहुँच के रूप में उपयोग कर सकते आदानों की जरूरत उन के माध्यम से var allForms = document.forms;

पाश का उपयोग कर सभी स्वरूपों इन पंक्तियों के साथ

0

आप फॉर्म में एक आईडी जोड़ सकते हैं और su BMIT बटन:

<form method="post" id="form1"> 
<input type="hidden" name="hiddenId" value="111222"> 
<input type="submit" value="Proceed" id="submit1"> 
</form> 

<form method="post" id="form2"> 
<input type="hidden" name="hiddenId" value="111333"> 
<input type="submit" value="Proceed" id="submit2"> 
</form> 

तब प्रपत्र प्रस्तुत करने के लिए jQuery का उपयोग करें:

$("#submit1").click(function() { 
    form1.submit(); 
} 
$("#submit2").click(function() { 
    form2.submit(); 
} 
+1

* आईएफ * मूल पोस्टर jQuery का उपयोग कर रहा था (या उपयोग करना चाहता था), हाँ। –

+0

ओपी jQuery का उपयोग नहीं कर रहा है। –

+0

मूल पोस्टर ने कहा "मैं जावास्क्रिप्ट के साथ कैसे जमा करूं" यही कारण है कि मैंने यह दृष्टिकोण लिया। –

6

document.forms एक सरणी है। document.forms[0] पहला है।

तत्वों उसी तरह काम:

document.forms[0].elements[0].value आदि

आप कर सकते हैं लूप के माध्यम से जब तक आप मूल्य तो मौजूदा फार्म प्रस्तुत है:

document.forms[x].submit() 
1

आप document.querySelector या में से एक इस्तेमाल कर सकते हैं विभिन्न जावास्क्रिप्ट पुस्तकालय जो छिपे हुए इनपुट तत्व को खोजने के लिए पुराने ब्राउज़र पर अनुकरण करते हैं, फिर फॉर्म को एक्सेस करने के लिए form प्रॉपर्टी का उपयोग करें और submit विधि का आह्वान करें।

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