在Javascript中使用带有输入表单的document.writeln

时间:2011-03-30 20:51:24

标签: javascript forms input

我正在尝试使用Javascript输入表单。在表单上,​​如果下拉选择是某个选择,则下面将显示特定的表单字段。

这是我目前拥有的代码,但它似乎不起作用,我猜document.writeln不是正确的方法。如果我添加一个警报以查看它是否正在拉动它的选择,那么添加表单的内容就会失败。在document.writeln警报甚至不再出现之后?

<script language="javascript">
  var HelpTopic = document.getElementById('type');
  HelpTopic.onchange=function() {
    if(HelpTopic.value == "Analytics") {
      alert("Congrats");
      document.writeln('\<li\>
        \<label for\=\"confirm\"\>Input name*\<\/label\>
        \<input type\=\"text\" name\=\"inputs\" id\=\"names\" required \/\>
        \<\/li\>');
    } else {
      alert("Fails");
    }
  }
</script>

4 个答案:

答案 0 :(得分:1)

你不能在JS中跨越多行的字符串。你需要这样的东西:

document.writeln('\<li\>' +
  '\<label for\=\"confirm\"\>Input name*\<\/label\>' +
  '\<input type\=\"text\" name\=\"inputs\" id\=\"names\" required \/\>' +
'\<\/li\>');

编辑:您不需要那么多的转义。这也可行:

document.writeln(
  '<li>' +
   '<label for="confirm">Input name*</label> ' +
   '<input type="text" name="inputs" id="names" required />' +
  '</li>');

答案 1 :(得分:1)

要将列表项正确添加到某个列表,请改为使用以下代码:

var oList = document.getElementById("MyList");
var oItem = document.createElement("li");
oItem.innerHTML = "<label for='confirm'>Input name*</label><input type='text' name='inputs' required />";
oList.appendChild(oItem);

这会将项目添加到ID为MyList的列表中。

答案 2 :(得分:0)

只是快速说明,javascript支持多行字符串,如此

'<li>\
  <label for="confirm">Input name*</label>\
  <input type="text" name="inputs" id="names" required />\
</li>'

我同意Shadow Wizard,这是附加列表的最佳方式

答案 3 :(得分:0)

您尝试动态修改“onChange”(缺少大写字母C)的方式似乎与Chrome有问题

另外,你不能像你那样将字符串分成多行

以下代码应该有效,请注意我添加了“onChange = myfunc();”选择:

<select id=type onChange=myfunc();>";
<option value=Other>Other</option>
<option value=Analytics>Analytics</option>
</select>


<script language="javascript">
function myfunc()
{
var HelpTopic = document.getElementById('type');

if(HelpTopic.value == "Analytics") {
    alert("Congrats");
    document.write('<li><label for="confirm">Input name*</label><input type="text" name="inputs" id="names" required></li>');
} else {
    alert("Fails");
}

}
</script>