1

このコードでは、変更イベントを使用して addInput(divname) 関数によって処理される選択フィールドの入力に基づいて動的テキスト フィールドを生成しようとしていますが、addInput 関数内の while ループが機能していません。選択した番号を生成する必要があります。テキストフィールドの数...そして、別の番号を選択するとテキストフィールドも変更されるはずです...

<!DOCTYPE html>
<html>
    <head>
        <title></title>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    </head>
    <body>
        <form action="adduniv.php" method="post">
            University Name: <input type="text" name="college">
            No. of branches:
            <div id="dynamicInput">
                 <select name="branches" id="branches" onchange="if (this.selectedIndex) addInput('dynamicInput');;" ">
                     <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>
                </select>
            </div>   
            <script>
                var counter = 0;
                var limit = 3;  
                function addInput(divName)
                {       
                    var k=parseInt(document.getElementById("branches"));
                    var newdiv;
                    while(k>0) 
                    {
                        newdiv = document.createElement('div');
                        newdiv.innerHTML = "Entry " + (counter + 1) + " <br><input type='text' name='myInputs[]'>";
                        document.getElementById(divName).appendChild(newdiv);
                        counter++;
                        k--;
                     }
                 }
             </script>
             <input type="submit" value="submit" />
         </form>
    </body>
</html>
4

6 に答える 6

0

行を変更する

var k=parseInt(document.getElementById("branches"));

var k=parseInt(document.getElementById("branches").value);
于 2013-04-09T14:05:54.377 に答える
0

document.getElementById("branches")DOM-Node を返しますが、この DOM-Node の値を取得する必要があります。そこで、以下を試して生成してくださいk

var k=parseInt(document.getElementById("branches").value);
于 2013-04-09T14:06:04.770 に答える
0
parseInt(document.getElementById("branches"));

NaN私が知る限りの結果になります。DOM ノード全体を整数として解析しようとしていますが、何を期待していましたか? そこからvalueプロパティを取得したい場合があります。

parseInt(document.getElementById("branches").value, 10);
于 2013-04-09T14:06:24.160 に答える
0

.value を document.getElementById("branches") に追加するのを忘れたと思います

于 2013-04-09T14:07:34.157 に答える
0

わかりました、問題が解決したことは知っていますが、これを試してみます:

    <!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">    
    <title>Creating input fields</title>
    <script>
      function addInput(nr_branches) {
        var nCounter = 0;        
        //-- Cleaning all elements
        var divB = document.getElementById('divBranches');
        if(divB.hasChildNodes()) {
          while(divB.childNodes.length >= 1) {
            divB.removeChild(divB.firstChild);
          }
        }                
        while(nCounter < nr_branches) {          
          //-- Create a input field
          var input = document.createElement("input");
          input.type = 'text';
          input.name = 'branche_nr_' + nCounter;
          input.placeholder = 'Branche Nr.' + nCounter;
          //document.getElementById("divBranches").innerHTML = "<input type='text' name='branche_nr_'"+ nCounter +" placeholder='Branche Nr."+ nCounter +"' />";
          document.getElementById('divBranches').appendChild(input);        
          nCounter++;          
        }                 
      }    
    </script>
  </head>  
  <body>
    <form name="frm" action="adduniv.php" method="post">
      <input type="text" name="college" placeholder="University Name" />
      <select name="branches" id="branches" onchange="addInput(this.value)">
        <option value="0">-select your branche-</option>
        <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>
      </select>
      <div id="divBranches"></div>
      <input type="submit" value="submit" />      
    </form>
  </body>
</html>
于 2013-04-09T17:38:33.617 に答える