我想问这样做是否合法:
<textarea name="message"></textarea>
代替;
<form><textarea name="message"></textarea></form>
在这两种情况下,Backbone 都会处理表单内容,好处就是我不必阻止表单提交的默认行为。我只是不确定这是否是一个“好”的做法。
我想问这样做是否合法:
<textarea name="message"></textarea>
代替;
<form><textarea name="message"></textarea></form>
在这两种情况下,Backbone 都会处理表单内容,好处就是我不必阻止表单提交的默认行为。我只是不确定这是否是一个“好”的做法。
它没有任何问题。HTML 规范没有强制要求将文本区域放置在表单中,也没有描述如果不是则要采取的默认操作。仅当您使用默认表单操作时,将项目放置在表单中才有意义。
有两个潜在的问题。第一种是在非语义情况下,您在页面内静态有一个文本区域,没有非脚本操作。也就是说,如果用户在关闭 JavaScript 的情况下看到您的页面,他们会看到一个无用的文本区域。我假设您正在使用 Backbone 生成文本区域,这不是问题。
第二个是您正在使用 name 属性。该属性对表单有特殊意义,在表单之外没有 ID 强大。您可能会遇到可怕的情况,即您的组件被另一个开发人员放置在表单中,并且值被错误地传递给服务器。这种事情确实会发生。