0

オプション要素を JavaScript で動的に作成しました。1 つの選択フィールドからオプションをダブルクリックして、それを 2 番目の無効な複数選択フィールドに転送します。これはうまくいきます。新しい情報を含むフォームを送信しようとすると、問題が発生します。2 番目の選択フィールドは PHP に渡されません。空だと思っていると思いますが、追加した各オプションはデフォルトで選択されており、そこにすべてが視覚的に表示されます。私はこれに対する解決策を探していましたが、ほとんど運がありません。私が見つけることができるすべては、ブラウザの非互換性または要素がフォームに追加されていない可能性が最も高いことを示しています. ブラウザの非互換性の問題である場合、すべての主要なブラウザで同じ結果が得られたので、どれが欠けているか (FF、Chrome、IE) を知りたいと思います。フォームに追加されないことに関しては、それがどのように可能かわかりません。select 要素は既にフォームに存在しており、新しいオプションを追加しているだけです。私は何かを見逃していますか、それともこれは不可能ですか?

<script type="text/javascript" language="JavaScript">
function addModule(value, title) {
    modules = document.getElementById('modules');
    modules.options[modules.options.length] = new Option(title, value, true);
}
</script>
<form name="addModules" method="POST" action="submit.php">
<select name="moduleList" size="20" ondblclick="addModule(this.options[this.selectedIndex].text, this.value);">
<?php //dynamically created options from PHP ?>
</select>
<select id="modules" name="modules[]" multiple="multiple" size="20" DISABLED></select>
<input type="submit" value="Add Modules" />
</form>
4

3 に答える 3

2

無効なフィールドは送信されません。最も簡単な解決策は、読み取り専用に変更することです。無効にすることに決めた場合は、その値で更新される非表示フィールドを作成できますが、読み取り専用を使用してから、必要に応じてスタイルを設定することを強くお勧めします.

于 2012-04-12T20:06:31.237 に答える
0

これは、2 番目の選択が無効になっているためです。フォームが送信されたときにデータが送信されません。

無効にするのではなく、読み取り専用にしてみてください。

于 2012-04-12T20:07:36.007 に答える
0

これは標準的なブラウザの動作です。無効な選択リストに値を追加するときに、それを非表示の入力フィールドに追加して、ポストされたリクエストでこれにアクセスすることもできます。

于 2012-04-12T20:08:40.733 に答える