对于表单中元素的id和名称,必须复制相同的字符串似乎有很多浪费:
<input id="foo" /> <!-- JS/CSS accept this -->
<input name="foo" /> <!-- Only PHP accepts this -->
<input id="foo" name="foo" /> <!-- Everyone's happy -->
为什么PHP不使用id标签?
答案 0 :(得分:4)
为什么PHP不使用id标签?
那不是PHP,那是HTML。 PHP与HTML规范无关。
HTML 使用id
属性,但它使用它们的目的不同于name
属性。
HTML form
elements通过其子值承载元素(POST
,GET
,input
构建请求(通常为select
或textarea
),等等。)。 name
属性用作键,value
(或选定的值等)用作值。
这将为请求中的数据创建键/值对。
对于表单中元素的id和名称,必须复制相同的字符串似乎有很多浪费
您不必复制它。 您可以选择来复制它。但这是你的选择。任何规格/标准/惯例/等都没有规则。表明你必须或甚至应该这样做。
<input id="foo" /> <!-- JS/CSS accept this -->
<!--- incorrect. JS/CSS can also target name attributes if necessary. -->
<input name="foo" /> <!-- Only PHP accepts this -->
<!--- incorrect. This isn't PHP, this is HTML. PHP isn't involved here at all. -->
<input id="foo" name="foo" /> <!-- Everyone's happy -->
<!--- if that's the markup you choose to define, sure. -->
答案 1 :(得分:0)
为什么PHP不使用id标签?
因为这是将表单提交到指定服务器端的标准集。我会说,当您需要name
序列化表单元素时,ID最有可能与js / css一起使用。
答案 2 :(得分:0)
Id属性用于DOM操作。 http://www.w3schools.com/tags/att_global_id.asp
当使用表单name
发送表单时。
http://www.w3schools.com/tags/att_input_name.asp
这些是不同的目的。
您也可以在JS中使用name
属性,但会返回元素数组:
// plain JS
document.getElementsByName("foo");
// jQuery example
$('[name="foo"]')
答案 3 :(得分:0)
因为在web中需要3个类型标识符,例如每个唯一用途
1)class:用于设计并在dom(jquery)中选择多个标签 2)id:用于访问dom中的某些特定元素,并为一个字段设计 3)名称:用于传递单个和多个数据和数组
如果您可以通过id传递值,那么如何发送复选框值和多个选择标记值???