0

私は次のフォームを持っています:

<form name="quickAdd" action="" method="post" onsubmit="return quickAddProcess(this);">
    <input type="hidden" name="quickAddFields[module]" value="Products">
    <input type="text" name="quickAddFields[name]">
    <input type="checkbox" name="quickAddFields[toList]">
</form>

Chrome のコンソールからそれらにアクセスしようとすると、どうにかできません。 document.quickAdd.quickAddFields == undefined;
document.quickAdd.quickAddFields.module == TypeError: Cannot read property 'module' of undefined

しかし、PHP は配列を完全に取得します。

プレーンな JavaScript でこれらのフィールドにアクセスするにはどうすればよいですか?

アップデート:

ああ、document.getElementsByName('quickAddFields[module]);動作します。Formオブジェクトを介してアクセスできないのはなぜですか?

4

1 に答える 1

2

これは機能します:

document.quickAdd['quickAddFields[module]']

ライブデモ: http://jsfiddle.net/yWm3L/

フォーム要素の名前に[]文字が含まれています。したがって、ドット表記 (例: ) は使用できませんfoo.bar。代わりに、添え字表記 (例: foo['bar']) を使用する必要があります。

于 2012-07-04T12:08:19.553 に答える