Javascript(innerHtml)搞乱了 HTML 选择标签

标签 javascript html css innerhtml

我目前正在学习 HTML、PHP、JavaScript 和其他有趣的网络内容。至此,我成功地使用 HTML、CSS 和 PHP 创建了一个漂亮的 Web 表单。

几天前,我想用 JavaScript 添加一些动态选项,但现在我碰壁了。我没有将表单写入 html 文件,而是决定将其放入 .js 文件并由 javascript 构建。我是这样做的:

<!-- Insert the form into <div id=field> -->
...
document.getElementById(field).innerHTML +=
'<label>Name'
   +'<span class="small">ex: stg_testdb1</span>'
+'</label>'
+'<input type="text" name="name" id="name" />';

document.getElementById(field).innerHTML +=
'<label>Layer</layer>'
 +'<span class="small">ex: stg_testdb1</span>'
 +'<select name="layer" id="layer"/>'
   +'<option value="Development">D</option>'
   +'<option value="QA">A</option>'
   +'<option value="Staging">S</option>'
   +'<option value="Production">P</option>';
 +'</select>';
....

这是我的“select”、“input”和“label”标签的 CSS 代码

#stylized select{
font-size:12px;
padding:4px 2px;
border:solid 1px #aacfe4;
width:200px;
margin:2px 0 20px 10px;
}

#stylized input{
float:left;
font-size:12px;
padding:4px 2px;
border:solid 1px #aacfe4;
width:200px;
margin:2px 0 20px 10px;
}

#stylized label{
display:block;
font-weight:bold;
text-align:right;
width:145px;
float:left;
}

当我用纯 HTML 编写表单时,一切都很完美。这是表格的一部分的图片:

Working fine in pure html

但是当我使用 innetHTML += 在 javascript 中编写它时,除了下拉框(选择字段)之外,一切似乎都工作正常:

Not working fine with javascript

我有点困惑,因为 css 保持完全相同。此外,如果我尝试在第一个文本字段下添加另一个文本字段,一切都会正常且格式正确。

由于我是 Web 开发的新手,我想我错过了一些重要的东西?另外,我很确定像我这样插入代码不是正确的做法,但现在它几乎运行良好;)

最佳答案

我不知道这是否是解决方案,但在您的 JS 中,有:

<label>Layer</layer>

我想你的意思是

<label>Layer</label>

关于Javascript(innerHtml)搞乱了 HTML 选择标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12389486/

相关文章:

javascript - 为什么与一些较小尺寸的设备相比,尺寸较大的设备屏幕宽度较小?

带 CSS 的 HTML 不工作

javascript - Jquery.validate - 一页 - 多个表单

javascript - 为什么安装了reset按钮后,如果我想重新计算就显示 "NaN"?

javascript - 如何重用 HTML 片段但更改其中元素的 ID

html - 如何通过悬停更改 li 标签的背景颜色?

javascript - 在 safari 5.34.57.2 上以 css 或 js 订购 div

javascript - 如何确保 $.each 推送 jQuery 中的所有延迟?

javascript - 检查javascript中字符串内的字符串

javascript - 图像悬停时的工具提示无法正常工作