Ошибка "Отправить не является функцией" в 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 ()