选择选项时无法创建输入文本框

时间:2012-11-26 19:20:15

标签: java javascript html jsp

我是网络开发的新手,我试图从互联网上寻找任何资源,但我仍然无法弄清楚我的问题......

=>读取文本文件并生成选项...      我的test.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>

当用户选择其中一个选项时,javascript将在inputtext框中生成相应的参数...(参数数量因每次测试而异)

实施例。我们说

<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

^什么都不做...... 从根据选择框发送多个值来创建多个输入框,我从根本上说错了吗? 如果有更好的方法,请向我建议...... :) 谢谢你的帮助!

1 个答案:

答案 0 :(得分:1)

您必须在select字段中添加一个事件侦听器,并在值进行chaged时创建一个元素。这里有一些可能对您有帮助的代码。我只是写一个粗略的代码来给你一个想法。你必须解决它,使它适用于你的特定情况。

您必须在加载正文后立即设置此事件侦听器。那么在你的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.
   };)
}

希望这会有所帮助。 希望这会有所帮助。