デバッグを通じて、フォーム要素name="submit"
に名前を付けるべきではないことがわかりましたが、検索した後でも、理由の適切な説明が見つかりませんでしたか?
以下の簡単なコード例を参照してください。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<title></title>
</head>
<body>
<form action="javascript:alert('submitted');" method="post" id="test-form">
<label>Name</label>
<input type="text" name="name-field" value="" />
<input type="submit" name="submit" value="Submit Button" /> <!-- name should not be "submit" -->
<p><a href="javascript: document.getElementById('test-form').submit();">Submit Link</a></p>
</form>
</body>
</html>
- フォーム要素でEnterキーを押すか、 [送信]ボタンをクリックする と、機能します。
[送信]リンクをクリックすると、エラーが発生します
未処理のエラー:'document.getElementById(' test-form')。submit'は関数ではありません
送信ボタンの名前を(一部を大文字にしただけでも)以外の名前に変更するか、属性を削除するだけで、送信ボタンと送信リンクの両方が機能します。name="submit"
name="submit"
これを最新バージョンのInternetExplorer、Firefox、Opera、Chrome、Safariで試しました。それらのすべては、これに関して一貫した振る舞いをしています。
私のコード例でわかるように、jQueryやその他のJavaScriptライブラリは関与していません。
説明をいただければ幸いです。ありがとう