0

こんにちは私はJavaスクリプトの初心者です。ドロップダウンオプション1を選択して1つのテキストボックスを生成し、ドロップダウン2を選択して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 を設定するとループの外側に設定されます。

    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 に答える