只是一个简单的问题..
我正在尝试生成一个文本输入,其中默认值嵌套在带有内联css的标记中。只是为了使它看起来比正常输入更小和更灰。
echo $this->Form->input( 'address', array('div'=>false, 'label'=>'', 'default'=>'<span style="font-size: 0.6em;color:#e3e3e3;">put your address here</span>', 'size'=>'50' ) );
用户点击后,默认值将被删除,并将其留空。
然而,cakephp使用包含html标签的值生成输入,即。 如何使cakephp不使用默认值中的html?
我忘了在这种情况下使用什么选项,我尝试了所有我能想到的东西。我记得我可以通过在选项数组中添加某种值来实现这一点,例如'html'=>false
。
答案 0 :(得分:1)
将帮助文字放在标签中。如果将默认值作为HTML字符串,则Input将显示HTML,因为它不会在其中呈现HTML。
如果您将其他HTML添加到标签中,则可以使用此http://trevordavis.net/blog/jquery-inline-form-labels在输入上叠加标签。
echo $this->Form->input( 'address', array('div'=>false, 'label'=>'put your address here','size'=>'50' ) );
此外,此方法允许您在外部应用css而不是内联 - 这总是最好的。
答案 1 :(得分:0)
我不知道有什么方法可以让输入框在其内部呈现html。 API中也没有任何内容可以暗示你想要什么。 可以将其嵌入div中,并在标签和输入之前,之后和之间包含内容。我认为你需要使用javascript来完成你想要做的事情。
<style>
.default {font-size: 0.6em;color:#e3e3e3;}
.normal {color:black;}
</style>
<script language='javascript'>
function change(input)
{
input.classList.add("normal");
if (input.value == "enter text here")
input.value = "";
}
</script>
<form>
<input id='test' class='default' type='text' value='enter text here' onfocus='change(this);'>
</form>