1

重複の可能性:
送信はJavaScriptの関数ではありません

JSを使用してフォームを送信しようとしていますが、うまくいきません。これがコードです。JSFIDDLE

<!DOCTYPE html>
<html>
<head>
    <script type="text/javascript" src="js/jquery.js"></script>
    <script type="text/javascript">
    function validate () {
        alert('start');        
        $('#myform').submit();
        alert('end');        
    }
    </script>
</head>
<body>
    <form id="myform" name="myform" method="post" action="">
        <input type="button" value="submit" id="submit" onclick="validate();" >
    </form>
</body>
</html>

問題は「なぜそれが機能しないのか?」です。

4

5 に答える 5

10

submitフォームメソッドと競合するIDを持つフォーム要素がありsubmitます。送信ボタンIDを別のものに変更してください。

フォーム要素にはフォームオブジェクトのプロパティとしてアクセスできるため、myFormというフォームがあり、IDまたは名前がsubmitのフォームに入力がある場合、myForm.submitは元のsubmitメソッドではなく、idsubmitの入力要素になります。

http://jsfiddle.net/4kg8c/1/を参照してください

于 2012-10-13T19:40:03.410 に答える
3

コンソールのエラーは

Uncaught TypeError: Property 'submit' of object #<HTMLFormElement> is not a function 

問題は、要素にsubmitという名前を付けてsumit()関数を乗っ取ったことです。ボタンのIDをbtnSubmitに変更します。

于 2012-10-13T19:42:26.090 に答える
1

私はそれを使用するソリューションであなたのコードを変更しました。

送信ボタンの名前がありません。送信の「送信」として名前を使用しないでください。JSと競合するので。

<!DOCTYPE html>
<html>
<head>
    <script type="text/javascript">
    function validate () {
        document.myform.submit();   
    }
    </script>
</head>
<body>
    <form id="myform" name="myform" method="post" action="">
        <input type="button" name="save" value="submit" id="submit" onclick="validate();" >
    </form>
</body>
</html>
于 2012-10-13T19:41:07.737 に答える
0

これがあなたが書いた正確なコードであるなら、私はあなたがページにjQueryライブラリを含めていないと思います。

$("#myform")表記を使用する前に、jQueryファイルを含める必要があります。

また、ページを送信するアクションURLを指定しますか?

于 2012-10-13T19:39:50.850 に答える
-1

jQueryコード($関数)を使用しますが、jQueryソースを含めません。

于 2012-10-13T19:38:16.490 に答える