javascript - 根据复选框禁用/启用文本框

标签 javascript cakephp cakephp-2.0

我正在使用 cakePHP 框架来处理我的项目。

如何在选中复选框时启用文本框,并在未选中复选框时禁用它?我尝试了 javascript,但它不起作用,我认为这是因为我的“id”。我应该如何声明我的“id”?

这是我的代码。它位于 forLoop 中。


echo $this->Form->checkbox('menu_item_id',
                            array(
                                    'value' => $items[$i]['MenuItem']['menu_item_id'],
                                    'hiddenField' => false,
                                    'name' => 'data[OrderItem][menu_item_id][]',
                                    'label' => false,
                                    'div' => false,
                                    )
                                ); 

echo $this->Form->input('quantity', 
                        array(
                            'style'=>'width:65px; height:25px;',
                            'name' => 'data[OrderItem][quantity][]',
                            'div' => false,
                            'label' => false
                            )
                        );

echo $this->Form->input('notes', 
                        array(
                            'style'=>'width:65px; height:25px;',
                            'name' => 'data[OrderItem][notes][]',
                            'div' => false,
                            'label' => false
                            )
                        );
 

By the way, I am a beginner both in cakePHP and Javascript. Thanks.

I made some changes. In my script, I added this

 

    
        function changeStatus(){
            if(document.getElementById("my_checkbox").checked == true){
                document.getElementById("input_field").disabled= false;
                alert('a');
            } else {
                document.getElementById("input_field").disabled= true;
                alert("B");
            }
        }
    

*警报用于测试。它转到正确的 block ,但它没有启用/禁用文本字段。你知道为什么吗?

最佳答案

默认 cakephp 将 id 分配给具有正常约定的任何元素,即 UsersMenuItemId (我假设 users 是您的模型)。但是您可以使用其他 htmlOptions 分配 id,例如

echo $this->Form->checkbox('menu_item_id',
                        array(
                                'id' => 'my_checkbox',
                                'value' => $items[$i]['MenuItem']['menu_item_id'],
                                'hiddenField' => false,
                                'name' => 'data[OrderItem][menu_item_id][]',
                                'label' => false,
                                'div' => false,
                                )
                            );

现在编写一个基本脚本:

<script>
  $(document).ready(function(){
      $('#my_checkbox').event('click', function(){
          if($('#my_checkbox').is(':checked')){
             $('#input_field').removeAttr('disabled');                 
          } else {
             $('#input_field').attr('disabled','disabled');
          }
      });
  });
</script>

关于javascript - 根据复选框禁用/启用文本框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16274878/

相关文章:

javascript - Flask - 获取数据框以 csv 格式下载

session - cakephp 多个应用程序具有相同的蛋糕库和共享 session

cakephp - CakePHP2 中的多态关联

javascript - 简单的 Javascript onclick 图片库不起作用

javascript - Firebase 脚本代码显示在控制台中

CakePHP 错误日志 - 我可以排除 404 错误吗?

php - cakephp中当值为null时如何保存记录?

php - 需要 Salesforce API 详细信息才能从我的网站 (PHP) 创建 salesforce CRM 中的潜在客户

javascript - React ES6 组件不会重新渲染

php - CakePHP 3 - 在自定义查找器中使用 IN...SELECT