303

このコードの何が問題なのか誰か教えてもらえますか? JavaScript でフォームを送信しようとしましたが、「.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>

どちらも同じエラーを表示します:(

4

17 に答える 17

836

送信は機能ではありません

送信ボタンまたはその他の要素に名前を付けたことを意味しますsubmit。ボタンの名前をに変更するbtnSubmitと、通話が魔法のように機能します。

ボタンにsubmitという名前を付けるとsubmit()、フォームの関数が上書きされます。

于 2009-05-07T11:46:35.713 に答える
14
<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>

編集:誤ってIDを交換しました

于 2009-05-07T05:44:43.993 に答える
5

マスターページを使用して MVC アプリケーションを作成していたときに、同じ問題が発生しました。上記のように「submit」という名前の要素を探してみましたが、そうではありませんでした。

私の場合、ページに複数のタグが作成されたため、正しいフォームを参照する際に問題が発生しました。

これを回避するために、使用するフォーム オブジェクトをボタンで処理できるようにします。

onclick="return SubmitForm(this.form)"

そしてjsで:

function SubmitForm(frm) {
    frm.submit();
}
于 2012-06-18T07:40:54.710 に答える
2

フォーム要素に submit という名前を付けると、submit プロパティが単純にシャドウされます。submit という名前のフォーム要素がないことを確認してください。送信機能に問題なくアクセスできるはずです。

于 2016-09-25T17:28:08.047 に答える
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>
于 2019-01-24T01:46:48.843 に答える
0

私が使ったのは

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

他のすべてがうまくいかなかったからです。

于 2016-07-16T08:54:16.057 に答える
-1

getElementById を使用します。

document.getElementById ('frmProduct').submit ()
于 2009-05-07T09:18:51.327 に答える
-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>

同じ名前のフォームが複数ありませんか?

于 2009-05-07T06:37:23.447 に答える