0

我想选择一个以保持一致性(尽管我认为这并不重要)并选择了 id....viadocument.getElementById().

不再使用

  • js访问的name属性
  • 表单数组访问

关于这个有多个帖子......但只是为了让生活更轻松,不再考虑它......我只使用ID。

这个选择有问题吗?

我不太关心 N5 和 N6 以及 W3 规格。

以下是一些类似的帖子:

最佳实践:通过 HTML id 或 name 属性访问表单元素?

4

2 回答 2

1

ID 假设用于页面上每个元素的唯一 ID。所以在同一个文档中多次出现是无效的。

但是... NAME 属性可以在 html 标准中合法地重复。当 name 用于表单输入项时,cgi 接收的值基于 name=value 对。ID 没有固有的名称。

老实说..我认为你在这里混合苹果和橙子,因为两者的目的非常不同。

于 2012-08-09T22:17:06.020 回答
1

如果在一个页面上有多个带有多个输入的表单时,每个表单输入都使用id,那么您应该关心每个输入的标识符的唯一性。所以标识符可能会变得很长,比如“my-form-user-name”和“my-other-special-form-user-name”等。

所以我建议给表单元素一个id,通过id检索表单,然后按名称引用它的元素。为几个表单创建唯一且可读的标识符比为 5 个表单的 50 个字段(每个表单有 10 个字段)更容易。并且可能代码将更具可读性。

<h4>Article form</h4>
<form id="article-form" method="post">
    <label>Title:</label>
    <input name="title" type="text" />
    <label>Text:</label>
    <textarea name="text"></textarea>
    <input type="submit" name="submit" value="Comment" />
</form>

<hr />

<h4>Support form</h4>
<form id="support-form" method="post">
    <label>Title:</label>
    <input name="title" type="text" />
    <label>Text:</label>
    <textarea name="text"></textarea>
    <input type="submit" name="submit" value="Submit issue" />
</form>
<script type="text/javascript">
    var article = document.getElementById('article-form'),
        ticket = document.getElementById('support-form');

    article['title'].value = 'My Article';
    article['text'].value = 'The text of my article...';

    ticket['title'].value = 'I found bug at your site';
    ticket['text'].value = 'Bug description...';
</script>

小提琴

但是,如果您在我的示例中使用标签并希望for在其中使用属性将它们绑定到输入,那么无论如何您都需要具有该输入的标识符。

于 2012-08-09T22:54:44.130 回答