2

FF 14 で mootools (1.4.5) を使用してフォームを送信しようとしています。フォームに submit という名前の入力が含まれていません (これがしばしば問題になります)。私が欲しいのは、フォームを送信するための選択の onchange です。30分後、以下のコードが私の最初の試みでした。objSelect は、送信する必要があるフォームに含まれる選択オブジェクトです。

$(''+objSelect.getParent('form').get('id')).submit();

.

以下のコードが同様に機能しない理由は何ですか?

// Without the explicit cast to string (''+); doesn't work
$(objSelect.getParent('form').get('id')).submit();

または

// Most obvious way; doesn't work
objSelect.getParent('form').submit();
4

1 に答える 1

1

古いDOMレベルのAPIを介してエクスポートされる予約名の子ノードを持つことはできません-フォームがどのように表現されているかをここで参照してください:http ://www.quirksmode.org/js/forms.html#access

つまり、基本的に-要素レベルで、次の場合:

    • input [name = foo]
    • input [name = bar]

form.fooform.barフォーム要素オブジェクトでこれらの要素を参照します。

あなたの場合の問題は次のとおりです。

  • フォーム(.submitおよび.resetメソッドを使用)
    • ボタン[名前=送信]

ここform.submitで、submitメソッドの参照を停止し、input要素の参照を開始します。

次のいずれかを実行して、このフォームを送信します。

  • 間違っている要素の名前を変更するか、フォームから削除してください。
  • クリーンなフォームからsubmitを呼び出してチートします。

new Element("form").submit.call(this.getParent("form"));

基本的に、クリーンな送信メソッドを使用して新しいフォーム要素を作成します。これはオブジェクトを返し、他の「ダーティ」フォームをコンテキストとして使用してメソッドを呼び出します。

これはやることと同じです

Array.prototype.slice.call(arguments)
于 2012-07-30T18:31:53.380 に答える