通过选择下拉列表元素| CakePHP 3来显示\隐藏输入字段

时间:2017-07-23 22:12:55

标签: php jquery cakephp-3.0

我的英语不是很好,但我试着解释我的问题。 我使用CakePHP 3.4.10开发Web应用程序,并在web-develop中开发begginer。 这是我的一段代码

<div class="documents form large-9 medium-8 columns content">
    <?= $this->Form->create($document,['id'=>'doc_add']) ?>
    <fieldset>
        <h4><?= __('Add Document') ?></h4>

        <?php
        echo $this->Form->control('doc_type', ['label'=>'Document Type',
        'required'=> true,
        'type'=>'select',
        'options' => ['New', 'Again in work']
        ]);
        echo $this->Form->control('incoming_number');
        echo $this->Form->control('incoming_number_fraction',['disabled'=>true]);
        echo $this->Form->control('incoming_date');
        echo $this->Form->control('preparation_date');
        echo $this->Form->control('review_date');
        echo $this->Form->control('core_document');
        echo $this->Form->control('adult_id', ['options' => $adults]);
        echo $this->Form->control('document_view_id', ['options' => $documentViews]);
        echo $this->Form->control('infant_id', ['options' => $infants]);
        echo $this->Form->control('ref_action_id', ['options' => $refActions]);
        echo $this->Form->control('ref_article_id', ['options' => $refArticles]);
        echo $this->Form->control('ref_ministry_internal_affair_id', ['options' => $refMinistryInternalAffairs]);
        ?>
    </fieldset>
    <?= $this->Form->button(__('Submit')) ?>
    <?= $this->Form->end() ?>         
</div>

我想做什么: 第一个用户必须选择收件箱中的文档类型 -  如果它是&#34;新&#34; - 我们应该禁用或隐藏字段&#34; incoming_number_fraction&#34;  如果是&#34;再次在工作&#34; - 我们应该启用或显示字段&#34; incoming_number_fraction&#34; 我想在没有按下的情况下做到这一点&#34;提交&#34;。 怎么样?我花了很多时间才找到解决方案,但对我来说没什么用处( 如果它是JQuery或JavaScript,任何人都可以展示如何与CakePHP 3.x一起使用它 感谢。

1 个答案:

答案 0 :(得分:1)

Facepalm ...如果有人搜索,可以在这里发帖。 使用JQuery:

<script type="text/javascript">
    $('#doc-type').change(function() {
    $('label[for=incoming-number-fraction], input#incoming-number-fraction').hide();
    if ($('#doc-type').val() == 1) {
        $('label[for=incoming-number-fraction], input#incoming-number-fraction').show();
    }
});
</script>