0

私はWeb開発に不慣れで、インターネットからリソースを探しようとしましたが、それでも問題を理解できません...

=>テキストファイルを読み取り、オプションを生成します...mytest.jspページ

<tr>
<td>Select test : </td>
<td><select id="testname" name="testname" onchange="makeBox()">
while ((src = test.readLine()) != null){
    param = "";
    temp =src.split(":");
    tempsize =temp.length;
    if ((tempsize >2)){
        int i;
        for (i=2; tempsize>i ; i++){
            if((temp[i].equals("null"))){
                 param = "";
            }
            else if ((i ==2) && (temp[i] != "null")){
                 param = temp[i];
            }
            else if ((i > 2)){
                 param = param + "," + temp[i];
            }
         }
     }
      %>
     <option value="<%=param%>" name="<%=temp[0]%>"><%=temp[0]%></option>
     <%
}
test.close();
    %>
</select></td>
</tr>

ユーザーがこれらのオプションの1つを選択すると、javascriptは入力テキストボックスに対応するパラメーターを生成します...(パラメーターの数はテストごとに異なります)

元。まあ言ってみれば

<option value="size,height,weight" name=apple>apple</option>

が選択されています。次に、ページに次のような3つのテキストボックスを表示します。

<td> Enter size: </td>
<td><input type="text" id="size" name="size"></td>
<td> Enter height: </td>
<td><input type="text" id="height" name="height"></td>
<td> Enter wieght: </td>
<td><input type="text" id="weight" name="weight"></td>

私の試み:

<script type="text/javascript">
    function makeBox() {
        var selected = document.getElementById('batchname');
        for (var i=1, n=selected.options.length;i<n;i++){
            if (selected.options[i].value){
                var a = "<input type = 'text' name = '" + selected.options[i].value + "' id = '" + selected.options[i].value + "'>";
                document.getElementById("inputBox").innerHTML = a;
            }
        }
    };
    </script>

私が読んでいるテキストファイル:

Apple:A.B.C.D:size:colour
Banana:G.C.D.E:length
Pear:L.D.E.F:shape:weight:color
Orange:E.C.A.W:density:length:color:weight
Melon:E.P.D.A                    // no param

^何もしません...選択ボックスから複数の値を送信して複数の入力ボックスを作成するのは根本的に間違っていますか?より良い方法があれば、私に提案してください... :)あなたの助けに感謝します!

4

1 に答える 1

1

選択フィールドにイベントリスナーを追加し、値が変更されたときに要素を作成する必要があります。これがあなたを助けるかもしれない小さなコードです。私はあなたにアイデアを与えるために大まかなコードを書いているだけです。特定のケースで機能させるには、それを回避する必要があります。

ボディがロードされたらすぐにこのイベントリスナーを設定する必要があります。だからあなたのHTMLで

<body onload="init()" id="stage" class="theme">

とあなたのJavaScriptで

function init() {
   document.getElementById("selectListID").addEventListener("change", function(){
      var value = document.getElementById("selectListID").value; // this gives you the selected value.
      // Your code to add the element that you need.
   };)
}

お役に立てれば。お役に立てれば。

于 2012-11-26T19:30:51.437 に答える