0

您好,我是 java 脚本的新手,我编写了代码以通过选择下拉选项 1 生成一个文本框,并通过选择下拉选项 2 生成两个文本框,但我在文本框中获取值,如 select_0 和 select_1 。 ...这是我的代码

<html>
<script type="text/javascript">

        window.onload = function()
        {
            var select = document.getElementById("select");
            var texts = document.getElementById("texts");
            select.onchange = function()
            {
                var val = select.options[select.selectedIndex].value;
                texts.innerHTML = "";
                for(i=0; i < val; i++)
                {
                    texts.innerHTML += '<div><input type="text" name="t_' + i + '" value="select_' + i + '" /></div>';
                }
            }
        }

    </script>
<body>
    <form method="POST" action="connection.php">
Question:<br>
<textarea name="question" cols="35" rows="5"></textarea><br>
<select id="select" size="1">
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
<option value="6">6</option>
<option value="7">7</option>
<option value="8">8</option>
<option value="9">9</option>
</select>
<div id="texts"></div>
<input type="submit" name="Submit" value="Submit" >
</form>
</body>
</html> 

请建议我不要在文本框中获取值。我不知道我哪里出错了。在此先感谢

4

2 回答 2

0

文本输入的“值”属性文本框中的文本。如果您不希望它显示在文本框中,只需执行以下操作:

    texts.innerHTML += '<div><input type="text" name="t_' + i + '" /></div>';
于 2013-06-07T03:02:53.163 回答
0

有比使用 innerHTML 更好的方法,但现在我感觉很懒。只需在设置文本输入时删除 value= 部分,并且我已将 innerHTML 设置在循环之外,因为设置 innerHTML 有点昂贵(处理)并且不应该在循环中使用。

    window.onload = function()
    {
        var select = document.getElementById("select");
        var texts = document.getElementById("texts");
        select.onchange = function()
        {
            var val = select.options[select.selectedIndex].value,
            //set the innerHTML one time using ret (Array)
            ret=[];
            texts.innerHTML = "";
            for(i=0; i < val; i++)
            {
                // do not set value property:
                ret.push('select_' + i + ': <div><input type="text" name="t_' 
                  + i + '"/></div>');
            }
            // set innerHTML here
            texts.innerHTML = ret.join("");
        }
    }
于 2013-06-07T03:03:10.643 回答