【问题标题】:CakePHP automagic date type input field clashing with JQMCakePHP 自动日期类型输入字段与 JQM 冲突
【发布时间】:2013-09-02 17:44:46
【问题描述】:

我正在尝试使用 CakePHP 和 JQM 设置一个表单,虽然所有数据的保存、编辑和检索都按照我的意愿进行,但我在 Cake 自动处理的方式上遇到了一些问题具有属性 type="date"

的字段

基本上,在 JQM 中,如果您添加该属性,您将在触摸设备键盘上获得一个可爱的格式化日期选择器,但是当我尝试将该属性添加到 CakePHP 表单时,它会将字段转换为三个下拉框.

无论如何我可以防止这种情况发生吗?我附上了一个屏幕截图来说明当我将 type="date" 属性添加到字段时会发生什么。请注意标签下的下拉菜单“将在日期发生:”

【问题讨论】:

  • 我不知道 JQM 的细节,但我理解这个问题。我认为最好的方法是编写一个扩展 FormHelper 的助手(例如 DateInputHelper),这样您就可以自己创建标记。
  • 您好,感谢您的评论。我可以写一个助手,但是,我以前从未做过。但是,我确实找到了答案,我现在将其作为答案发布

标签: cakephp jquery-mobile


【解决方案1】:

所以,事实证明这比我想象的要简单(一如既往)。

声明输入有两种方式:

  1. echo $this->Form->input(.....);
  2. echo $this->Form->{type of input}(....)

第二个是关键。由于我想要一个带有 type="date" 属性的文本框外观字段,因此我需要实现以下代码:

echo $this->Form->text('id', array('type' => 'date'));

现在我想起来似乎非常简单。

查看 CakePHP 关于其表单助手的精彩文档:http://book.cakephp.org/2.0/en/core-libraries/helpers/form.html

【讨论】:

    【解决方案2】:

    我想补充一点,当使用 FormHelper::input() 时,默认情况下会呈现错误。
    这不是 FormHelper::text() 的情况。

    在视图.ctp中加入如下代码即可解决。

    echo $this->Form->error('id');
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-10-07
      • 1970-01-01
      • 2014-03-01
      • 2016-11-10
      • 2019-10-31
      • 2016-07-09
      • 1970-01-01
      相关资源
      最近更新 更多