2

ビューに HtmlHelper を使用して、cakePHP アプリの基本的な CRUD ページをいくつか作成しています。これはフォームの作成には便利ですが、日付入力の場合、ヘルパーはデフォルトで日付用に 3 つの選択ボックスを生成しますが、これは使用するのが非常に面倒です。

HTML5 は HTML5 を導入しinput[type=date]、ほとんどのブラウザーはそれに対処するための優れたネイティブ インターフェイスを組み込んでいます。たとえば、Chrome は日付入力用の優れた日付ピッカーを生成します。

次のようにすることで、HtmlHelper を 3 つのドロップダウンの代わりにボックスにすることができることを知ってtextいます。

echo $this->Form->input('my_date', array('type' => 'text'));

しかし、私がするとき

echo $this->Form->input('my_date', array('type' => 'date'));

2 番目の引数を無視して、3 つの選択に戻ります。

ヘルパーに日付入力をさせる方法はありますか?

4

6 に答える 6

4

HtmlHelper は、「日付」入力を利用するようにまだ進化していないようです。

日付入力をテキスト フィールドとして生成するようにヘルパーに指示した場合、jQuery ワンライナーを追加すると、日付入力に変換できます。

そう:

echo $this->Form->input('my_date', array('type' => 'text'));

フィールドを生成します。それで:

$('#idOfMyDate').attr('type', 'date');

日付入力に変更します。

誰かがより良い方法を持っているなら、私はそれを聞きたいと思っています。

于 2013-09-19T12:26:19.477 に答える
1

これを試して:

    echo $this->Form->text('my_date',array('type' => 'date');
于 2015-07-22T17:04:26.773 に答える
0

このように、それは魅力として機能します

<div class="form-group">
            <label for="Description"><?php echo __('Date'); ?></label>
            <div class='input-group date' id='datetimepicker1'>
                <?php echo $this->Form->input('scheduled_date', array('label'=> false, 'div' => false, 'class'=>'form-control', 'type' => 'text')); ?>
                <span class="input-group-addon">
                     <span class="glyphicon glyphicon-calendar"></span>
                </span>
            </div>
        </div>

いくつかの説明:

  • 'div' => false: input() FormHelper 関数によってレンダリングされた div を無効にする必要があります

  • 'label' => false: input() FormHelper 関数によってレンダリングされるラベルを無効にする必要があります

詳細については、cake PHP フォーム ヘルパー ドキュメントをご覧ください。

于 2015-08-24T13:24:43.137 に答える
0

jqueryでこの問題を解決しました

PHP

<?= $this->Form->control('birth_date', ['value' => $birth_date->i18nFormat('yyyy-MM-dd'), 'type' => 'text']); ?>

JS

$('#birth-date').attr('type', 'date');
于 2020-08-06T20:58:59.740 に答える