在octoberCMS中的日期选择器中手动输入日期后,禁用保存表单

问题描述

当我在后端表单上使用日期选择器小部件并且用户手动输入日期时,在该字段中按Enter时将保存该表单;有什么办法可以禁用该行为?

我的Yaml文件

fields:
    field_1:
        label: field_1
        type: text
        span: storm
        cssClass: col-xs-4
        attributes:
            tabindex: 1
    field_2:
        label: field_2
        type: text
        span: storm
        cssClass: col-xs-4
        attributes:
            tabindex: 2
    date:
        label: 'date,don't press enter!'
        mode: date
        type: datepicker
        span: storm
        cssClass: col-xs-4
        attributes:
            tabindex: 3

解决方法

您必须使用javascript。

您可以通过几种方式添加javascript-我的首选方法是在您的fields.yaml中定义部分,并将javascript放在部分中。您还可以将JavaScript直接包含在plugins/foo/bar/controllers/baz/

的create.htm和/或update.htm文件中

类似的事情会起作用:

$('form').on('keyup keypress',function(e) {
  var keyCode = e.keyCode || e.which;
  if (keyCode === 13) { 
    e.preventDefault();
    return false;
  }
});

请注意,更改表单和按键的工作方式是不受欢迎的-浏览器,屏幕阅读器等的默认行为,假设按Enter键将提交表单。我建议您仅在有少量用户可以将此信息传递给用户的情况下进行此更改(或告诉他们在提交表单之前不要点击Enter)。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...