在 Codeigniter 中设置表单的“名称”属性
Posted
技术标签:
【中文标题】在 Codeigniter 中设置表单的“名称”属性【英文标题】:Setting the 'name' property of a Form in Codeigniter 【发布时间】:2011-09-18 16:55:19 【问题描述】:参考http://codeigniter.com/user_guide/helpers/form_helper.html 的 Codeigniter 用户指南,我似乎无法弄清楚如何使用 CI 的表单助手设置表单的“名称”属性。传入数组只能设置'id'。不传数组给form_open()函数可以设置表单的'name'吗?
【问题讨论】:
【参考方案1】:你可以用这个方法
$attributes = array('name' => 'myform');
echo form_open('email/send', $attributes);
【讨论】:
我不知道为什么我的答案被否决了...因为 w3school 还使用带有表单标签的 name 属性..w3 school example 我没有对它投反对票,但我认为它已经完成,因为您的解决方案使用了一个数组,并且 OP 要求使用非数组解决方案,但我可能对 downvoter 的意图有误.. @Damien Pirsy,OP 说:“只有 'id' 可以通过传入数组来设置。”但事实并非如此。如果他的问题是基于 name 属性可能无法使用数组传递给表单助手的前提,那么这是一个无关紧要的问题,因为 cchameed 已经证明可以使用数组将名称传递给表单助手。我刚刚在我的表单中使用了这种方法,现在我看到了一个以前没有的名称属性。 也许我错了,但Can the 'name' of the form be set without passing an array to the form_open()
表示 OP 不想传递数组,句号。我认为这个问题具有误导性
对,他这么问。但他似乎是在使用数组无法完成的前提下问的,现在不是这样(可能是两年前他问这个问题的时候)。【参考方案2】:
表单的 name 属性实际上已被弃用:
17.3 表单元素
[....]
name = cdata [CI] This attribute names the element so that it may be referred to
来自样式表或脚本。笔记。 此属性已包含在 向后兼容性。应用 应该使用 id 属性来 识别元素。
来源:W3.org
如果你真的想通过它,恐怕你别无选择,只能使用你想避免的数组,正如你在手册中阅读的那样。
【讨论】:
很高兴知道!只是想知道使用'name'和'id'之间是否有任何重大区别,也许'name'仍然用于旧版浏览器? @Nyxynyx 听起来就是这样!无论如何,ID 更实用,因为您可以轻松附加 js 处理程序、css 类等。此外,在 我想知道为什么 name 属性会被弃用,而在 javascript 中将表单名称称为关联数组元素非常有用:document.forms['myform']
为什么不是更直接直接的document.getElementById('myformid')
?你为什么反对?以上是关于在 Codeigniter 中设置表单的“名称”属性的主要内容,如果未能解决你的问题,请参考以下文章
在 CodeIgniter 4.0.2 中设置动态基本 URL