1

JavaScript によって送信されたフォームがあり、何かが壊れていました。与えられたエラーは

Error: TypeError: document.getElementById(...).submit is not a function
Source File: http://localhost/FormProcess.js

id入力フィールドの属性に値が割り当てられると、submit事態がひどく台無しになることが判明しました。これは、id 値を JavaScript の予約語にできないということですか? 私がまだ得ていないsubmit() のは、予約語でさえないのに、なぜそれが問題を引き起こすのでしょうか?

<input type="button" id="submit" onclick="check(document.getElementById('txt1'), document.getElementById('txt2'))" />

競合する

document.getElementById("orderForm").submit()
4

1 に答える 1

4

フォームでは、フォーム コントロールの名前と ID を使用して、DOM フォーム要素の名前付きプロパティを作成します。

<form onsubmit="alert(this.foo.value);" ...>
  <input name="foo" value="bar">
  <input type="submit">
</form>

したがって、フォームの送信ハンドラーでは、フォームをthis参照し、foothis.fooという名前の入力を参照します。したがって、「送信」という名前のフォーム コントロールがある場合、フォームの送信プロパティは、送信メソッドではなくコントロールを参照します。

そのため、標準のフォーム メソッドやプロパティと同じ名前のフォーム コントロールを使用しないでください。たとえば、"action"、"name"、"submit"、"reset" などのフォーム コントロール名を使用しないでください。

ところで、「送信」は予約語ではなく、DOM フォーム要素の標準メソッドにすぎません。

于 2013-05-28T23:17:31.107 に答える