Разрешить HTML во входном значении по умолчанию - PullRequest
1 голос
/ 12 мая 2011

Просто быстрый вопрос ..

Я пытаюсь сгенерировать текстовый ввод, в котором значение по умолчанию вложено в тег со встроенным 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.

Ответы [ 2 ]

1 голос
/ 12 мая 2011

Поместите свой вспомогательный текст в ярлыки. Если вы введете значение по умолчанию в виде строки HTML, то на вкладке будет отображаться 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 внешне, а не встроенно - что всегда лучше.

0 голосов
/ 12 мая 2011

Я не знаю ни одного способа получить поле ввода для отображения 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>
...