LoginSignup
4

More than 5 years have passed since last update.

name="submit"を持つ入力項目には気を付けて!

Posted at

javascriptでフォームのデータを送信した場合にsubmit()を使ったが、
特定のページのみエラーが発生。以下がエラーの内容

エラー内容

エラー
Uncaught TypeError: document.getElementById(...).submit is not a function

submit?そんな関数ねぇよと怒られる。
なんで?他のページでは送信出来ているのに・・・

原因

原因
<input type="button" name="submit" value="更新" />

どうやら原因はform内にいるname="submit"が原因だったみたい。

idまたはnameがsubmitとなっている入力項目タグが存在する場合、
formのsubmitプロパティは関数ではなく、当該タグの DOM オブジェクトを指してしまっている。
つまり、フォーム上のsubmit()関数がオーバーライドされているってことみたい。

まとめ

解決方法はname属性を別の名前に変えるだけ!

画面のコーディングは別の方が担当していたので、中々気づかなかった。。。
もし、submit関数が動作しないときや、送信機能がうまくアクセスできないときは
submitという名前のフォーム要素を持っていないか確認してみてください。

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4