javascript - 关于表单标签内的脚本标签

标签 javascript html

我在动态创建选项的选择标签中添加了一个脚本标签。该函数工作正常,但 W3C 验证器给我 4 个关于此语法的错误。如果你们能帮我找到这个问题的解决方案,那将会很有帮助。

这些是重复 2 次的 2 个错误

1. 文档类型不允许在此处使用元素“script”

2. year_option();未完成的“select”的结束标记

最佳答案

1) 唯一的标签 <select>可以有<option><optgroup>标签 验证者提示因为 <script>不是其中之一——浏览器正在尽最大努力把你的无效标记变成有效的东西,所以尽管它有效,这就是你得到错误的原因,如果你真的把 <script> <select> 内的标签

2) 你的脚本标签应该在页面的底部,而不是使用 document.write要将选项标签放在那里,请在事后使用 DOM 方法将选项添加到选择元素

<select name="select-box"></select>
<!-- ...rest of page... -->
<script src="external-script.js"></script>

/* contents of external-script.js */
var select_box = document.querySelector("select[name=select-box]"),
    bob_opt  = document.createElement("option"),
    doug_opt = document.createElement("option");

bob_opt.value  = "Bob";
doug_opt.value = "Doug";
bob_opt.appendChild(document.createTextNode("Bob"));
doug_opt.appendChild(document.createTextNode("Doug"));

select_box.appendChild(bob_opt);
select_box.appendChild(doug_opt);

有更快、更整洁、更精细或更灵活的方法来做到这一点,但这比类似的方法更接近“正确的方法”:

<select>
    <script>document.write("<option value=\"" + i + "\">one</option>");</script>
</select>

或者您目前可能拥有的任何东西。 如果不为此目的使用/编写模板库,JS 并不意味着要像那样进行模板化。

关于javascript - 关于表单标签内的脚本标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15354608/

相关文章:

php - 在 jQuery 中克隆或向表单添加输入不会提交到 Firefox 中的 PHP

javascript - React Native Paper 按钮图标大小

javascript - Node js - 使用表单等发布数据重定向到 url

jquery - 使元素跳过 Bootstrap CSS

javascript - 有没有办法在旧浏览器(JS?)中使用 CSS3 属性

php - 文件上传无法以组合 php 形式工作,而是单独工作

javascript - 在 Chrome/webkit 的 contenteditable div 层中设置插入符号位置

javascript - div 在 ie 中为 null,但在 mozilla 和 opera 中为 null

html - 缩小浏览器窗口时将 flexbox 放在彼此下面

javascript - WOW.js 无法与 Wordpress 一起正常工作