Сформируйте текстовые откосы и придумайте снова - PullRequest
0 голосов
/ 19 января 2012

Как мне это сделать в Symfony?

http://dorward.me.uk/tmp/label-work/example.html

Когда я нажимаю в поле ввода имя пользователя. Текст исчезает. Если я ничего не введу и не нажму в другом месте, текст снова появится. Как мне это сделать в symofny в lib / forms /.

Спасибо за совет!

Craphunter

Ответы [ 2 ]

2 голосов
/ 19 января 2012

Это не Symfony - его javascript ... просто взгляните на источник (использует jQuery)

HTML:

<div class="slim-control">
    <label for="username"> Username </label>
    <input name="username" id="username">
</div>
<div class="slim-control">
    <label for="password"> Password </label>
    <input name="password" id="password" type="password">
</div>

JavaScript:

(function () {
    var nonEmpty = "non-empty";
    var inputs = jQuery('.slim-control input');
    var setLabelStyle = function setLabelStyle () {
        var label = jQuery(this);
        if (label.val().length) {
            label.addClass(nonEmpty);
        } else {
            label.removeClass(nonEmpty);
        }
    };
    inputs.focus(function () {
        jQuery(this).addClass(nonEmpty);
    });
    inputs.blur(setLabelStyle);
    inputs.each(setLabelStyle);
}());

Так что, если вы хотите сделать это - вам нужно добавить, например, javascript в шаблон (indexSuccess.php) - вам, вероятно, придется изменить идентификаторы / классы для удовлетворения ваших локальных потребностей

Обновлено

Вы можете создать следующую форму - она ​​будет соответствовать форме выше (не проверено):

$this->form = new sfForm();
$this->form->setWidgets(array(
    'username' => new sfWidgetFormInputText(),
    'password' => new sfWidgetFormInputPassword()
));

Создание форм (на самом деле вся Symfony) очень хорошо задокументировано здесь -> http://www.symfony -project.org / gentle-вводный / 1_4 / ru / 10-Forms

1 голос
/ 20 января 2012
'input' => new sfWidgetFormInputText(array(), array('size' => '100', 'maxlength' => '255', 'value' => 'Some text', 'onblur' =>"if(this.value == &#039;&#039;) { this.value=&#039;Some text&#039;}", 'onfocus' =>"if (this.value == &#039;Some text&#039;) {this.value=&#039;&#039;}")),

Это намного короче! Будьте осторожны, чтобы "Некоторый текст" был идентичен!

Если вам нужно передать больше, взгляните на SetWidgetsHtml в форме Symfony: (скользит вниз) http://www.symfony -project.org / форма / 1_4 / а / 01-формообразование

...