2009-05-07 17 views
194

में त्रुटि क्या कोई मुझे बता सकता है कि इस कोड के साथ क्या गलत हो रहा है? मैंने जावास्क्रिप्ट के साथ एक फॉर्म जमा करने का प्रयास किया, लेकिन एक त्रुटि ".submit एक समारोह नहीं है" दिखाया गया है।"सबमिट फ़ंक्शन नहीं है" जावास्क्रिप्ट

<form action="product.php" method="get" name="frmProduct" id="frmProduct" enctype="multipart/form-data"> 

<input onclick="submitAction()" id="submit_value" type="button" name="submit_value" value=""> 

</form> 

<script type="text/javascript"> 
    function submitAction() 
    { 
     document.frmProduct.submit(); 
    } 
</script> 

मैं भी इस की कोशिश की: कोड की अधिक जानकारी के लिए नीचे देखें आईडी के मैंने गलती की अदला-बदली:

<script type="text/javascript"> 
    function submitAction() 
    { 
     document.forms["frmProduct"].submit(); 
    } 
</script> 

दोनों मुझे एक ही त्रुटि :(

+0

कौन सा ब्राउज़र आप इस संदेश देता है के रूप में समारोह कॉल करने के लिए? क्या आप पूरा स्रोत पोस्ट कर सकते हैं? आप पोस्ट नहीं किया है – harto

+0

यह देखते हुए कि पोस्ट कोड दोनों IE7 और Chrome2 में मेरे लिए काम करता, तो शायद वहाँ कुछ कोड में गलत क्या है? –

+9

शायद आप नाम या आईडी प्रस्तुत के साथ एक क्षेत्र है और इस तरह .submit() उस क्षेत्र द्वारा आच्छादित है? –

उत्तर

527

प्रस्तुत एक समारोह

मतलब है कि आप अपने सबमिट बटन या कुछ अन्य तत्व submit का नाम नहीं है। बटन को btnSubmit पर पुनर्नामित करें और आपकी कॉल जादुई रूप से काम करेगी।

जब आप बटन सबमिट करते हैं, तो आप फॉर्म पर submit() फ़ंक्शन ओवरराइड करते हैं।

+1

बस सेलेनियम के साथ इस समस्या में पड़ गए "सबमिट करें" लगता है>< – AaL

+34

यहाँ एक आसान चाल है आप समस्या आ रही है।।।।। आपके सबमिट बटन को '# submit' होने के साथ, आप एक और फॉर्म इंस्टेंस की 'सबमिट()' विधि चोरी करके इसे प्राप्त कर सकते हैं, उदाहरण के लिए : 'document.createElement ('form')। submit.call (document.frmProduct)'। –

+19

लगता है कि हर किसी को यह एक कठिन तरीका सीखना है। एक अच्छा काम साक्षात्कार सवाल – SeanDowney

8
<form action="product.php" method="post" name="frmProduct" id="frmProduct" enctype="multipart/form-data"> 

<input id="submit_value" type="button" name="submit_value" value=""> 

</form> 

<script type="text/javascript"> 

document.getElementById("submit_value").onclick = submitAction; 

function submitAction() 
{ 
    document.getElementById("frmProduct").submit(); 
    return false; 
} 
</script> 

संपादित दिखाने लगभग

+0

document.getElementById ("frmProduct") सबमिट सबमिट नहीं है :( –

+1

क्या आपके पास आईडी 'frmProduct' के साथ एक से अधिक तत्व हैं? – tvanfosson

+0

सबमिट करने के लिए हैंडलर के रूप में सबमिट करने के लिए एक्शन सबमिट करना और उसके बाद सबमिट करना आविष्कार करना अनंत हो सकता है पाश। हैंडलर उन बिंदुओं को पाने के लिए आप – tvanfosson

-1

आप

आजमा सकते हैं
<form action="product.php" method="get" name="frmProduct" id="frmProduct" enctype="multipart/form-data"> 

<input onclick="submitAction(this)" id="submit_value" type="button" name="submit_value" value=""> 

</form> 

<script type="text/javascript"> 
function submitAction(element) 
{ 
    element.form.submit(); 
} 
</script> 

क्या आपके पास एक ही नाम के साथ एक से अधिक रूप नहीं हैं?

-1

उपयोग getElementById:

document.getElementById ('frmProduct').submit() 
4

मुझे वही समस्या थी जब मैं मास्टर पृष्ठों के साथ एमवीसी अनुप्रयोग बना रहा था। उपरोक्त वर्णित नामों के रूप में 'सबमिट' के साथ तत्व की तलाश करने का प्रयास किया लेकिन यह मामला नहीं था।

मेरे मामले के लिए यह मेरे पृष्ठ पर कई टैग बनाए गए ताकि सही फॉर्म का संदर्भ देने में कुछ समस्याएं हों।

इस हल करने के लिए मैं दूँगा बटन संभाल जो फार्म वस्तु का उपयोग करें:

onclick="return SubmitForm(this.form)" 

और जे एस के साथ:

function SubmitForm(frm) { 
    frm.submit(); 
} 
5

यकीन है कि वहाँ के साथ कोई दूसरा रूप है कि बनाओ एक ही नाम और सुनिश्चित करें कि फॉर्म में कोई नाम = "सबमिट" या id = "सबमिट" नहीं है।

0

मैं क्या इस्तेमाल किया

var enviar = document.getElementById("enviar"); 
enviar.type = "submit"; 

सिर्फ इसलिए कि सब कुछ और कुछ फ्लॉप काम है।

1

एक फॉर्म तत्व देने का नाम सबमिट करने का नाम सरल छाया सबमिट करेगा। सुनिश्चित करें कि आपके पास नाम सबमिट करने के साथ कोई फॉर्म तत्व नहीं है और आप सबमिट फ़ंक्शन को ठीक से एक्सेस करने में सक्षम होना चाहिए।

1

आप name="submit" बदलने के लिए आप भी प्रपत्र इस तरह से प्रस्तुत कर सकते हैं कोई मौका है: मेरे लिए

function submitForm(form) { 
    var submitFormFunction = Object.getPrototypeOf(form).submit; 
    submitFormFunction.call(form); 
} 
0

समाधान बटन के "फ़ॉर्म" विशेषता

<form id="form_id_name"><button name="btnSubmit" form="form_id_name" /></form> 

स्थापित करने के लिए था या है js :

YOURFORMOBJ.getElementsByTagName("button")[0].setAttribute("form", "form_id_name"); 
YOURFORMOBJ.submit(); 
0

इस विषय में पहले से ही बहुत सारे जवाब हैं, लेकिन जो सबसे अच्छा काम करता है (ए - nd सरल एक पंक्ति) मेरे लिए से 21 अप्रैल 2013 नील ई पियर्सन द्वारा की गई टिप्पणी के एक संशोधन किया गया:

आप अपने सबमिट बटन #submit जा रहा है के साथ फंस रहे हैं, तो आप इसे प्राप्त कर सकते हैं चारों ओर एक और फॉर्म उदाहरण जमा() विधि चोरी करके।

अपनी विधि मेरे संशोधन, और क्या मेरे लिए काम किया:

document.createElement('form').submit.call(document.getElementById(frmProduct));

0

संभावित समाधान -
1.Make यकीन है कि आप का नाम/के रूप में आईडी के साथ किसी भी अन्य तत्वों की जरूरत नहीं है जमा करें।
2.Try onClick = "return submitAction();"
3. document.getElementById("form-name").submit();

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