javascript名称vs ID

javascript名称vs ID,javascript,xhtml,standards,Javascript,Xhtml,Standards,据我所知,有两种方法可以从文本框中获取值 document.formName.textboxName.value; 或 据我所知,使用表单名意味着我要编写的代码更少,因为名称可以用于发布数据和获取值(除了使用ajax)。如果我只是使用标准表单发帖,我会使用name发帖,但我不能使用id e、 在php中,我会使用 $_POST['texboxName']; 如果我在文本框中输入了where和ID,那么我无法使用php获取值 推荐的标准方法是什么?使用name浏览器友好型?如果可能,请链接,

据我所知,有两种方法可以从文本框中获取值

document.formName.textboxName.value;

据我所知,使用表单名意味着我要编写的代码更少,因为名称可以用于发布数据和获取值(除了使用ajax)。如果我只是使用标准表单发帖,我会使用
name
发帖,但我不能使用
id

e、 在php中,我会使用

$_POST['texboxName']; 
如果我在文本框中输入了where和ID,那么我无法使用php获取值


推荐的标准方法是什么?使用
name
浏览器友好型?如果可能,请链接,谢谢。

本指南的最终指南是

突出的事情:

  • id
    对任何HTML元素都有效,而
    name
    仅适用于少数几个元素(
    a
    input
    textarea
    以及其他一些元素)
  • 输入
    (和
    文本区域
    )元素需要设置
    名称
    ,如果您希望提交它

在提交表单期间使用
name
属性,即创建将被处理到服务器的名称-值对。
id
属性用于在DOM中定位和删除元素。通常,名称仅用于表单元素

参考资料:



我通常使用这两种方法。正如您所提到的,
name
对于通过JavaScript使用数据非常有用,并且在数据提交后也是如此。可以根据需要在
名称中使用其他字符:当在阵列服务器端使用输入时,我倾向于在我的名称中使用
[]
s


id
属性可用于通过JS/DOM访问元素。它也被
用于
属性。例如,如果使用复选框执行此操作,则单击标签将使复选框变为选中状态。对于可用性来说,这是一个很大的好处。

< P>我认为每个表单元素有一个名称<强>和< /强> ID是很好的做法。原因是,如果您想通过sytlesheets添加标签或样式(您应该这样做),那么两者都有意义


至于使用javascript访问它:更好的方法是使用元素的id,因为如果更改表单的名称,一切都会中断。使用id时不会发生这种情况。

我更喜欢使用id,因为代码的“功能”(即:您试图实现的功能)与语义无关。对我来说,.GetElementById('myid')比仅在代码中分散使用“myid”更突出,可读性更强。此外,您还可以更轻松地重命名元素。那是我的2便士

但是,大多数处理表单的JavaScript活动都是从表单内部启动的(从按钮和字段事件或表单本身的onsubmit事件),因此从调用方使用
this.form
this
不会产生歧义。还要注意的是,“字段”可能涉及多个元素,因此经常需要按名称而不是id检查值(想想单选按钮和复选框)。@Vilx-Am知道这有点旧,但想知道“共享同一名称空间”是什么意思@PeanutsMonkey-谢谢你向我指出这一点。我弄错了。名称空间共享的事情是。该链接对此进行了更好的解释,但简而言之,当使用URL中的
#
跳转到特定的锚定点时,它会同时查看
id
name
属性来确定滚动到哪个锚定点。如果有两个不同的锚,其中一个的
id
等于另一个的
名称
,则浏览器会感到困惑。因此,规范将此设置为无效。不要忘记
getElementsByName()
返回一个实时查询:每次访问返回的数组中的元素,甚至只是其长度,都会再次查询DOM。那会非常慢
getElementById
性能总是更好—使用
id
而不是
name
还有一个原因。
$_POST['texboxName'];