Ошибка "Отправить не является функцией" в JavaScript

Может ли кто-нибудь сказать мне, что происходит с этим кодом? Я попытался представить форму с помощью JavaScript, но отображается ошибка ".submit is not a function". Более подробную информацию о коде см. Ниже:

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

Оба показывают мне ту же ошибку: (

Ответ 1

submit не является функцией

означает, что вы назвали кнопку отправки или какой-либо другой элемент submit. Переименуйте кнопку в btnSubmit, и ваш звонок будет волшебным образом работать.

Когда вы называете кнопку submit, вы переопределяете функцию submit() в форме.

Ответ 2

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

EDIT: я случайно поменял идентификатор вокруг

Ответ 3

Убедитесь, что нет другой формы с тем же именем и убедитесь, что в форме нет name= "submit" или id = "submit".

Ответ 4

У меня была такая же проблема, когда я создавал приложение MVC, используя мастер-страницы. Пробовал искать элемент с 'submit' как имена, упомянутые выше, но это было не так.

В моем случае он создал несколько тегов на моей странице, поэтому возникли некоторые проблемы, ссылающиеся на правильную форму.

Чтобы обойти это, я дам дескриптору кнопки, который будет использовать объект формы:

onclick="return SubmitForm(this.form)"

и с js:

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

Ответ 5

Если у вас нет возможности изменить name="submit", вы также можете отправить форму следующим образом:

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

Ответ 6

давая элементу формы имя submit, будет просто теневое свойство submit. убедитесь, что у вас нет элемента формы с именем submit, и вы должны иметь доступ к функции отправки просто отлично.

Ответ 7

В этом разделе есть много ответов, но тот, который работал лучше всего (и простейший - одна строка!) для меня, был модификацией комментария Нила Э. Пирсона от 21 апреля 2013 года:

Если вы застряли с кнопкой отправки #submit, вы можете обойти ее, украв другой метод экземпляра экземпляра().

Мое изменение его метода и то, что сработало для меня:

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

Ответ 8

Возможные решения -
1. Убедитесь, что у вас нет другого элемента с именем /id как submit.
2. Попробуйте вызвать функцию как onClick = "return submitAction();"
3. document.getElementById("form-name").submit();

Ответ 9

Что я использовал

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

Просто потому, что все остальное не работало.

Ответ 10

Решение для меня состояло в том, чтобы установить атрибут "form" кнопки

<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();

Ответ 11

Вы должны использовать этот код:

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

Ответ 12

На самом деле, решение очень простое...

Оригинал:

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

Ответ 13

Вы можете попробовать

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

У вас нет более одной формы с тем же именем?

Ответ 14

Использовать getElementById:

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