将没有值的属性添加到 htmlOptions
Add attribute without value to htmlOptions
如何强制 Yii 1.x 渲染 HTML5 的无值属性,例如 htmlOptions
数组中的 autofocus
或 readonly
传递给任何东西?因此,结果我会得到例如:
<input autofocus>
我试过 this idea 的设置 array('autofocus'=>TRUE);
或 array('autofocus'=>'autofocus');
,但这不起作用。它呈现 <field autofocus="1">
或 <field autofocus="autofocus">
而两者都不是 HTML5 所期望的,因此它们不起作用。
我也尝试过(我不知道,为什么我期望它能工作)array('autofocus'=>NULL);
,但是这些属性现在被 Yii 1.x 删除并且根本不会呈现。
我还尝试了 setting this value using jQuery 的愚蠢解决方法。但是,如果我考虑一下,这甚至让我感到害怕。必须有更好的解决方案。
这似乎很明显,但我没有找到正确的答案,在其他来源中。
我认为你不能用 yii 做到这一点。你需要自己实现这个。 Yii 提供 CActiveForm#textField
供 正常使用 并且您需要在高级模式下使用文本字段。我认为没有办法做到这一点,除了 写普通 html <input>
标签 。可以写成html <input>
和yii 类似的分配id 和name。
根据 Maurizio Domba Cerin, a Yii Framework 1.x forum admin, you should use property CHtml::renderSpecialAttributesValue
(自 Yii 1.1.13 起可用)像这样(将其设置为 FALSE
):
CHtml::$renderSpecialAttributesValue = FALSE;
这将告诉 CHtml
class 渲染所有没有值的字段属性,它是在 HTML5(即 <input autofocus>
)中引入的,而不是 "old" XHTML 方式 (<input autofocus="autofocus"
).
我刚刚发现这在某种程度上是可行的。所有现代浏览器都平等对待以下行:
<input autofocus>
<input autofocus="autofocus">
所以,基本上,您不能向 Yii 添加 key-only 属性,但您可以添加 'autofocus' => 'autofocus'
或 'autofocus' => true
,它们的行为方式相同。它适用于 CHtml::activeTextField
以及通常的 input
.
如何强制 Yii 1.x 渲染 HTML5 的无值属性,例如 htmlOptions
数组中的 autofocus
或 readonly
传递给任何东西?因此,结果我会得到例如:
<input autofocus>
我试过 this idea 的设置 array('autofocus'=>TRUE);
或 array('autofocus'=>'autofocus');
,但这不起作用。它呈现 <field autofocus="1">
或 <field autofocus="autofocus">
而两者都不是 HTML5 所期望的,因此它们不起作用。
我也尝试过(我不知道,为什么我期望它能工作)array('autofocus'=>NULL);
,但是这些属性现在被 Yii 1.x 删除并且根本不会呈现。
我还尝试了 setting this value using jQuery 的愚蠢解决方法。但是,如果我考虑一下,这甚至让我感到害怕。必须有更好的解决方案。
这似乎很明显,但我没有找到正确的答案,在其他来源中。
我认为你不能用 yii 做到这一点。你需要自己实现这个。 Yii 提供 CActiveForm#textField
供 正常使用 并且您需要在高级模式下使用文本字段。我认为没有办法做到这一点,除了 写普通 html <input>
标签 。可以写成html <input>
和yii 类似的分配id 和name。
根据 Maurizio Domba Cerin, a Yii Framework 1.x forum admin, you should use property CHtml::renderSpecialAttributesValue
(自 Yii 1.1.13 起可用)像这样(将其设置为 FALSE
):
CHtml::$renderSpecialAttributesValue = FALSE;
这将告诉 CHtml
class 渲染所有没有值的字段属性,它是在 HTML5(即 <input autofocus>
)中引入的,而不是 "old" XHTML 方式 (<input autofocus="autofocus"
).
我刚刚发现这在某种程度上是可行的。所有现代浏览器都平等对待以下行:
<input autofocus>
<input autofocus="autofocus">
所以,基本上,您不能向 Yii 添加 key-only 属性,但您可以添加 'autofocus' => 'autofocus'
或 'autofocus' => true
,它们的行为方式相同。它适用于 CHtml::activeTextField
以及通常的 input
.