Cakephp 3.6.14: кнопка включения, если значение выбора имеет значение - PullRequest
0 голосов
/ 29 января 2019

У меня есть контроль выбора в моем коде и 2 кнопки отправки.Как я могу скрыть или отключить одну из кнопок, если в поле выбора не было сделано никакого выбора?

Вот код:

//selection box
echo $this->Form->control('assigned_to',['options' => $usersTo, 'empty' => true, 'value' => $selectedUser]);

//submit buttons

<?= $this->Form->submit(__('Direct Assign'), ['name' => 'btn', 'class' => 'button']) ?> 
//this must be disabled or hidden if selection box is empty


<?= $this->Form->submit(__('Save'), ['name' => 'btn', 'class' => 'button']) ?>

Ответы [ 2 ]

0 голосов
/ 30 января 2019

Вы можете использовать javascript, чтобы сделать то же самое:

//selection box
echo $this->Form->control('assigned_to',['options' => $usersTo, 'empty' => true, 'value' => $selectedUser, 'id' => 'assigned_to']);

//submit buttons

<?= $this->Form->submit(__('Direct Assign'), ['name' => 'btn', 'class' => 'button', 'id' => 'direct_assign']) ?> 
//this must be disabled or hidden if selection box is empty


<?= $this->Form->submit(__('Save'), ['name' => 'btn', 'class' => 'button']) ?>


    $(document).ready(function(){
// check the value of assign selection box when document is ready
     let assignedValue = $("#assigned_to").val(); // get the value of assign selection box
      if(assignedValue == '') {
       $("#direct_assign").attr('disabled', true) // to disable direct assign button 
      }
    })

Надеюсь, это поможет!

0 голосов
/ 30 января 2019
  1. Во-первых, вы не должны использовать Form-> submit, форма имеет одну кнопку отправки, я думаю, что вы должны использовать postlink.Также измените имя и создайте другой идентификатор для кнопок.
  2. Во-вторых, вы можете сделать это с помощью jquery, вы будете прослушивать событие выбора элемента управления и отключать и включать или делать то, что вы хотите сделать с другими элементами управления
<?php
$this->start("scriptBottom");
?>
<script>
$(document).ready(function () {
     $("assigned-to").change(function ()
     {
          var selected = $("#assigned-to option:selected").text();
          if(selected == 'OPTION 1')
          {
                 $("#btn").prop('disabled');
          }
          //do other things
}
});
</script>

<?php
$this->end();
echo $this->fetch('scriptBottom');
?>
...