1

このコード行が私のフォームを送信する理由を誰か説明してください:

document.myForm.submit();

しかし、この行はそうではありませんか?:

$('#myForm').submit();

他のすべてはまったく同じですが、私の JavaScript でその 1 行を切り替えるだけで大​​きな違いが生まれます。あなたが疑問に思っている場合に備えて、「送信」という名前の入力要素はありません。

編集:ここでの私のフォーム要素のIDと名前は両方とも「myForm」です

4

3 に答える 3

2
document.myForm.submit();

を指す

<form name="myForm">


しかし

$('#myForm').submit();

を指す

<form id="myForm">


したがって、属性 equals セレクターを使用します

$('form[name="myForm"]').submit();
于 2013-11-12T16:52:03.507 に答える
1

これは、jQuery の検証プラグインと競合することになりました。私のプロジェクトの他の誰かがこのプラグインをページに追加したため、 $('#myForm').submit() バージョンがその検証をトリガーし、フォームの送信を妨げていることに気づきませんでした。

回答してくれた皆さんの助けに感謝します!

于 2013-11-12T17:25:37.717 に答える
1

document.myForm.submit();nameの属性を参照しています。formこれはmyForm機能しているためです。

jQuery スニペットは、名前ではなく$('#myForm').submit();ID を持つフォームを探しているため、フォームに属性が設定されていない場合、この動作が見られます。明らかに、後者のコード行では、通常の JS ではないため、ページに含まれている jQuery も必要です。myFormidmyForm

于 2013-11-12T16:50:31.747 に答える