【问题标题】:Allow html in input default value允许输入默认值中的 html
【发布时间】:2011-05-12 15:40:15
【问题描述】:

只是一个简单的问题..

我正在尝试生成一个文本输入,其中默认值嵌套在带有内联 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'=&gt;false

【问题讨论】:

    标签: cakephp cakephp-1.3


    【解决方案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 而不是内联 - 这始终是最好的。

    【讨论】:

    • 抱歉,我的意思是将输入中的 HTML 作为值。不是作为输入的标签。
    【解决方案2】:

    我不知道有什么方法可以让输入框在其内部呈现 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>
    

    【讨论】:

    • 真的没有办法吗?之前我以为这可以做到。我之前继承了一个蛋糕项目,我认为它有一个表单,我可以在其中一个输入中使用 标签。也许我的记忆力让我失望了。我喜欢你使用 JS 的回答,虽然我只是认为这可以在蛋糕中完成。
    • 虽然您可以更改输入框的样式,但不能让它在其中呈现 html。如果您在以前的项目中使用过这个,我希望他们一直在使用自定义代码扩展 FormHelper。
    猜你喜欢
    • 1970-01-01
    • 2019-02-12
    • 2011-08-26
    • 1970-01-01
    • 1970-01-01
    • 2014-10-11
    • 1970-01-01
    • 2014-06-30
    • 1970-01-01
    相关资源
    最近更新 更多