このコード行が私のフォームを送信する理由を誰か説明してください:
document.myForm.submit();
しかし、この行はそうではありませんか?:
$('#myForm').submit();
他のすべてはまったく同じですが、私の JavaScript でその 1 行を切り替えるだけで大きな違いが生まれます。あなたが疑問に思っている場合に備えて、「送信」という名前の入力要素はありません。
編集:ここでの私のフォーム要素のIDと名前は両方とも「myForm」です
このコード行が私のフォームを送信する理由を誰か説明してください:
document.myForm.submit();
しかし、この行はそうではありませんか?:
$('#myForm').submit();
他のすべてはまったく同じですが、私の JavaScript でその 1 行を切り替えるだけで大きな違いが生まれます。あなたが疑問に思っている場合に備えて、「送信」という名前の入力要素はありません。
編集:ここでの私のフォーム要素のIDと名前は両方とも「myForm」です
document.myForm.submit();
を指す
<form name="myForm">
$('#myForm').submit();
を指す
<form id="myForm">
$('form[name="myForm"]').submit();
これは、jQuery の検証プラグインと競合することになりました。私のプロジェクトの他の誰かがこのプラグインをページに追加したため、 $('#myForm').submit() バージョンがその検証をトリガーし、フォームの送信を妨げていることに気づきませんでした。
回答してくれた皆さんの助けに感謝します!
document.myForm.submit();nameの属性を参照しています。formこれはmyForm機能しているためです。
jQuery スニペットは、名前ではなく$('#myForm').submit();ID を持つフォームを探しているため、フォームに属性が設定されていない場合、この動作が見られます。明らかに、後者のコード行では、通常の JS ではないため、ページに含まれている jQuery も必要です。myFormidmyForm