জাভাস্ক্রিপ্টে "জমা দেওয়া কোনও ফাংশন নয়" ত্রুটি


263

এই কোডটি দিয়ে কী ভুল হচ্ছে আমাকে কেউ বলতে পারেন? আমি জাভাস্ক্রিপ্ট সহ একটি ফর্ম জমা দেওয়ার চেষ্টা করেছি, তবে একটি ত্রুটি "। সাবমিট কোনও ফাংশন নয়" দেখানো হয়েছে। কোডটির আরও বিশদ জানতে নীচে দেখুন:

<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>

উভয়ই আমাকে একই ত্রুটি দেখায় :(


কোন ব্রাউজার আপনাকে এই বার্তা দেয়? আপনি সম্পূর্ণ উত্স পোস্ট করতে পারেন?
হার্টো

বিবেচনা করেই যে পোস্ট কোডটি আমার জন্য আই 7 এবং ক্রোম 2 উভয় ক্ষেত্রেই কাজ করে, তবে সম্ভবত আপনি পোস্ট করেননি এমন কোডে কিছু ভুল আছে?
লাসে ভি। কার্লসেন

11
সম্ভবত আপনার নাম বা আইডি জমা সহ একটি ক্ষেত্র রয়েছে এবং এইভাবে। সাবমিট () সেই ক্ষেত্রটি দ্বারা ছায়াযুক্ত?
লাসে ভি কার্লসেন

যখন আপনার বিভিন্ন উপাদানগুলিতে একই আইডি = "ফ্রিমপ্রডাক্ট" থাকে তখন ত্রুটি ঘটেছিল।
অপটিমাজ আইডি

উত্তর:


734

জমা একটি ফাংশন নয়

এর অর্থ হল আপনি নিজের জমা বোতাম বা অন্য কোনও উপাদানটির নাম দিয়েছেন submit। বোতামটির নাম পরিবর্তন করুন btnSubmitএবং আপনার কলটি ম্যাজিকালি কার্যকর হবে।

আপনি যখন বোতাম জমা দেওয়ার নাম দিন, আপনি submit()ফর্মটিতে ফাংশনটি ওভাররাইড করবেন ।


55
এখানে একটি কার্যকর কৌশল। আপনি আপনার জমা বোতামটি হচ্ছে সঙ্গে আটকে হন, তাহলে #submit, আপনি অন্য ফর্ম উদাহরণস্বরূপ এর চুরি করে এটি প্রায় পেতে পারেন submit()পদ্ধতি, যেমন: document.createElement('form').submit.call(document.frmProduct)
নীল ই পিয়ারসন

35
দেখে মনে হচ্ছে সবাইকে এটিকে কঠিন উপায়ে শিখতে হবে। একটি ভাল কাজের সাক্ষাত্কারের প্রশ্নটি তৈরি করবে
সানডাউনে

9
আমি কেবল নাম = 'জমা' সরিয়েছি এবং বব আপনার আন্টি এটি কাজ করেছে !!
জাজ্পার

2
আমি আশ্চর্য হয়েছি যে আমি কখনই এটির মধ্যে প্রবেশ করিনি, তবে হায় আফসোস!
natebeaty

3
আমি এই ইস্যুটির জন্য আমার 2-3 ঘন্টা নষ্ট করেছি, উত্তরের জন্য অনেক ধন্যবাদ
মেহুল প্রজাপতি

12
<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>

সম্পাদনা: আমি দুর্ঘটনাক্রমে আইডিটি প্রায় অদলবদল করে দিয়েছি


document.getElementById ("frmProduct") জমা দিন কোনও ফাংশন নয় :(
জিন ইয়ং

1
'ফ্রিমপ্রডাক্ট' আইডি দিয়ে আপনার একাধিক উপাদান রয়েছে?
tvanfosson

অনসামিতের জন্য হ্যান্ডলার হিসাবে সাবমিটেশন যুক্ত করা এবং তারপরে জমা দেওয়ার অনুরোধ করা অসীম লুপ তৈরি করতে পারে। হ্যান্ডলারটি বোতামটির অন্লিকের সাথে যুক্ত হওয়া উচিত।
tvanfosson

1
ডাউনবোটিং সঠিক উত্তর হু? লম্পট ছেলেরা, আপনি যে পয়েন্টগুলির জন্য আপনার আত্ম বিক্রি করছেন সেগুলি পেতে আমাদের উপরে পদক্ষেপ দিন
চাদ গ্রান্ট

@ চ্যাড গ্রান্ট - আরও একমত হতে পারেন নি।
ফেন্টন

10

একই নামের সাথে অন্য কোনও ফর্ম নেই এবং তা নিশ্চিত করুন যে ফর্মটিতে কোনও নাম = "জমা" বা আইডি = "জমা" নেই make


9

আপনার যদি পরিবর্তনের কোন সুযোগ না থাকে তবে আপনিও name="submit"এইভাবে ফর্মটি জমা দিতে পারেন:

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

5
HTMLFormElement.prototype.submit.call(form)এছাড়াও কাজ করে
মুসা

5

আমি যখন মাস্টার পৃষ্ঠাগুলি ব্যবহার করে একটি এমভিসি অ্যাপ্লিকেশন তৈরি করছিলাম তখন আমার একই সমস্যা ছিল। উপরে বর্ণিত নাম হিসাবে 'জমা' দিয়ে উপাদান অনুসন্ধান করার চেষ্টা করা হয়েছিল তবে এটি হয়নি the

আমার ক্ষেত্রে এটি আমার পৃষ্ঠায় একাধিক ট্যাগ তৈরি করেছে যাতে সঠিক ফর্মটি উল্লেখ করে কিছু সমস্যা ছিল।

এটিকে ঘিরে কাজ করার জন্য আমি বোতামটি হ্যান্ডেলটি দেব যা কোন ফর্ম অবজেক্টটি ব্যবহার করবে:

onclick="return SubmitForm(this.form)"

এবং জেএস সহ:

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

3

এই বিষয়টির ইতিমধ্যে প্রচুর উত্তর রয়েছে, তবে আমার পক্ষে যে সবচেয়ে ভাল কাজ করেছে (এবং সবচেয়ে সহজ - এক লাইন!) তিনি 21 ই এপ্রিল 2013 থেকে নীল ই পিয়ারসনের মন্তব্যটি করেছিলেন:

যদি আপনি আপনার জমা বোতামটি # সাবমিট হয়ে আটকে থাকেন তবে অন্য ফর্ম উদাহরণের জমা () পদ্ধতিটি চুরি করে আপনি এটিকে ঘিরে ফেলতে পারেন।

তাঁর পদ্ধতিতে আমার পরিবর্তন এবং আমার জন্য কী কাজ করেছে:

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


2

কোনও ফর্ম উপাদানকে জমা দেওয়ার নাম দেওয়ার ফলে জমা দেওয়া সম্পত্তির ছায়া। নাম জমা দেওয়ার সাথে আপনার কোনও ফর্ম উপাদান নেই এবং আপনার জমা দেওয়া ফাংশনটি ঠিকঠাকভাবে অ্যাক্সেস করতে সক্ষম হওয়া উচিত make


2

আসলে, সমাধান খুব সহজ ...

মূল:

    <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>

সমাধান:

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

<!-- Place the button here -->
<input onclick="submitAction()" id="submit_value" type="button" 
    name="submit_value" value="">

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

আপনি কী দয়া করে ব্যাখ্যা করতে পারেন যে এটি কীভাবে ওপিটির সমস্যা সমাধান করে।
কিংসলে

নিশ্চিতভাবেই, এক্ষেত্রে (কেবলমাত্র এক্ষেত্রে) সমস্যা হচ্ছে সুযোগ।
জুরক সায়রব

1

আপনার এই কোডটি ব্যবহার করা উচিত:

$(document).on("ready", function () {
       
        document.frmProduct.submit();
    });


যদিও এই কোড স্নিপেট একটি ব্যাখ্যা সহ প্রশ্নটি সমাধান করতে পারে, সত্যিই আপনার পোস্টের মান উন্নত করতে সহায়তা করে। মনে রাখবেন যে আপনি ভবিষ্যতে পাঠকদের জন্য প্রশ্নের উত্তর দিচ্ছেন, এবং সেই লোকেরা আপনার কোড পরামর্শের কারণগুলি জানেন না। আপনার কোডটি ব্যাখ্যামূলক মন্তব্যে ভিড় না করার চেষ্টা করুন, এটি কোড এবং ব্যাখ্যা উভয়ের পাঠযোগ্যতা হ্রাস করে!
ফিল্নোর

0

আমি যা ব্যবহার করেছি তা হ'ল

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

শুধু কারণ সমস্ত কিছু কাজ করে না।


0

আমার জন্য সমাধানটি ছিল বোতামটির "ফর্ম" বৈশিষ্ট্যটি সেট করা

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

বা হয় জেএস:

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

0

সম্ভাব্য সমাধান -
1. নিশ্চিত করুন যে আপনার কাছে জমা / নাম হিসাবে আইডি সহ অন্য কোনও উপাদান নেই।
2. ফাংশনটি onClick = "return submitAction();"
3 হিসাবে কল করার চেষ্টা করুন ।document.getElementById("form-name").submit();


-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>

আপনার একই নামে একাধিক ফর্ম নেই?


আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.