Удаление <legend>и <fieldset>из FormHelper в CakePHP - PullRequest
0 голосов
/ 01 апреля 2011

Я занимаюсь с CakePHP, и я хотел бы удалить элементы HTML, которые я обычно избегаю, например <legend> и <fieldset>, из форм, которые я создаю из Form->create().Я видел, что есть что-то вроде этого:

<?php
echo $this->Form->create('User', 
    array (
        'action' => 'login',
        'inputDefaults' => array (
            'fieldset' => false,
            'legend' => false
        )
    ));

    echo $this->Form->inputs(array (
        /*'legend' => __('Login', true),*/
        'username',
        'password'
    ));

    echo $this->Form->end('Login');
?>

Если я напишу это, <legend> и <fieldset> будут видны вместо этого.Существует ли какая-то конкретная опция для их удаления?

<form accept-charset="utf-8" action="/site.com/users/login" method="post" id="UserLoginForm">
    <div style="display: none;"><input type="hidden" value="POST" name="_method"></div>
    <!-- hoto to remove this --><fieldset><legend>New User</legend><!-- end of removing -->
        <div class="input text required">
            <label for="UserUsername">Username</label><input type="text" id="UserUsername" maxlength="255" name="data[User][username]">
        </div>
        <div class="input password required"><label for="UserPassword">Password</label><input type="password" id="UserPassword" name="data[User][password]"></div>
    <!-- hoto to remove this --></fieldset><!-- end of removing -->
    <div class="submit"><input type="submit" value="Accedi"></div>
</form>

Ответы [ 3 ]

4 голосов
/ 05 апреля 2011

функция input () является новой для 1.3 и позволяет вам связывать поля в одну функцию и немного убирать вещи. Вот как убить набор полей и легенду:

echo $this->Form->input(array(
    'legend' => false,
    'fieldset' => false,
    'username',
    'password'
));
2 голосов
/ 01 апреля 2011

Проблема была

echo $this->Form->inputs(array (
    /*'legend' => __('Login', true),*/
    'username',
    'password'
));

используется вместо

echo $this->Form->input('username');
echo $this->Form->input('password');

из примеров, которые я читал на book.cakephp.org

0 голосов
/ 01 апреля 2011

Я никогда не видел, чтобы помощник по формам генерировал <fieldset> и <legend>.Это будет частью вашего взгляда.Типичный файл представления (/app/views/items.ctp)

<?php echo $this->Form->create('Item');?>
    <fieldset> <!-- remove this from your view (CTP) file -->
        <legend><?php __('Add Item'); ?></legend>
    <?php
        echo $this->Form->input('item_id');
        echo $this->Form->input('name');
    ?>
    </fieldset>
<?php echo $this->Form->end(__('Submit', true));?>

Как видите, <fieldset> и <legend> являются частью HTML в представлении.Просто удалите его из разметки.FormHelper генерирует только разметку для FORM и несколько служебных входов.

...