• 締切済み

JavaScripsのDOMについてなんですが…

閲覧ありがとうございます。 以前にSelectボックスで選んだ値の分だけテキストボックスの生成を行う方法を伺い、生成することが出来るようになりました。 (1)生成したテキストボックスを改行して表示がしたい。 (2)生成したテキストボックスの右隣にSelectボックスを生成し、Selectボックスで1~8の値を扱い、選んだ数値の分のテキストボックスをSelectボックスの右隣に生成するもの。 以下がSelectボックスで選んだ数値の分だけテキストボックスを生成するプログラムです。 <form name="form" action="index2.php"> <select id="factor" onchange="swicthForm(this)"> <option value="0">選んでください</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> </select> </form> <br> <script type="text/javascript"> function swicthForm(obj){ var n=obj.nextSibling; while(n){ var m=n.nextSibling; if(n.nodeName=="INPUT" && n.type=="text") n.form.removeChild(n); n=m; } for(var i=0; i<parseInt(obj.value);i++){ var e=document.createElement("input"); e.setAttribute("type","text"); e.setAttribute("name","test"+(i+1).toString()); obj.form.appendChild(e); } } </script> よろしくお願いします。

みんなの回答

  • fujillin
  • ベストアンサー率61% (1594/2576)
回答No.1

ご提示の方法をそのまま応用すればよいのでは? HTMLソースで改行(<br>)を入れるか、または<div><input ~ ></div>のようにするとか… というよりも、単に改行して表示されればよいだけなら、CSSでそのform内のinputに対して、  input { display:block; } としておくだけでもいいですね。 参考までに、divを生成する方法なら…  var d = document.createElement('div');  d.appendChild(e);  obj.form.appendChild(d); みたいにしておいて、事前に消去しているところを  if(n.nodeName=="DIV") n.parentNode.removeChild(n); に変えてあげればよろしいかと。

centosmuri
質問者

お礼

有難うございます。試してみたいと思います。

関連するQ&A