onchange javascript和添加元素

时间:2016-01-25 19:10:09

标签: javascript html

我在尝试使用" onchange"将文本字段添加到我的表单时遇到了javascript问题,这是代码:

 <!DOCTYPE html>
<html>
<body>

<form id="formdemo">

</form>

<p>Select a new car from the list.</p>

<select id="mySelect" onchange="myFunction()">
  <option value="Volvo">33
  <option value="1">1
  <option value="Audi">Audi
  <option value="BMW">BMW
  <option value="Mercedes">Mercedes
  <option value="Volvo">Volvo
</select>



<script>
function myFunction() {

   if (document.getElementById("mySelect").value == "1") {
            document.getElementById("formdemo").innerHTML = "   First name: <input type = "text" name ="firstname">"
        }
}
</script>

</body>
</html>

正如您所看到的,我想在用户选择&#34; 1&#34;时生成文本字段,但问题是当我选择&#34; 1&#34;值文本字段不会出现。

但是当我删除&#34;输入类型&#34;来自javascript的代码,代码如下所示:

<script>
function myFunction() {

   if (document.getElementById("mySelect").value == "1") {
            document.getElementById("formdemo").innerHTML = "   First name:"
        }
}
</script>

它有效!!它显示了&#34;名字:&#34;到网站。 这个方法我只是用于字符串还是仅用于添加段落,我应该使用另一种方法来添加表单,或者我使用了错误的语法?

感谢您阅读本文,祝您有个美好的一天。

3 个答案:

答案 0 :(得分:0)

你的代码很好,只是在innterHTML中你有一点错误。

document.getElementById("formdemo").innerHTML = "   First name: <input type = "text" name ="firstname">"

应该像

document.getElementById("formdemo").innerHTML = "   First name: <input type='text' name='firstname'>"

答案 1 :(得分:0)

你在String输入中错了:

<form id="formdemo">

</form>

<p>Select a new car from the list.</p>
<script>
function myFunction() {

   if (document.getElementById("mySelect").value == "1") {
            document.getElementById("formdemo").innerHTML = 
            "First name: <input type=\"text\" name=\"firstname\">";
        }
}
</script>
<select id="mySelect" onchange="myFunction()">
  <option value="Volvo">33</option>
  <option value="1">1</option>
  <option value="Audi">Audi</option>
  <option value="BMW">BMW</option>
  <option value="Mercedes">Mercedes</option>
  <option value="Volvo">Volvo</option>
</select>

输入应该像"First name: <input type=\"text\" name=\"firstname\">";

这是一个小提琴:&gt; Fiddle

答案 2 :(得分:0)

你可以这样试试

var input = document.createElement("textarea");
div.appendChild(input);