如何让 ActiveAdmin 在客户端对其表单执行输入验证?
How can I get ActiveAdmin to perform input validation on it's forms on the client side?
我有一个用于在 ActiveAdmin 中创建新资源的表单。我的两个字段是整数(peak_count 和 off_peak_count)。
如果我在这些字段中输入字符串,我将收到数据库错误的堆栈跟踪,因为输入的字段类型错误。在尝试将数据输入数据库之前,如何让 ActiveAdmin 在客户端强制执行字段的输入类型?
这是我的表格:
form do |f|
f.inputs do
if f.object.new_record?
f.input :name
else
f.input :id, :input_html => {:disabled => true}
f.input :name, :input_html => {:disabled => true}
end
f.input :peak_count
f.input :off_peak_count
end
f.actions
end
对于客户端验证,您应该能够将 :as => :number
作为过滤器添加到您的输入字段中。我知道 ActiveAdmin 支持 URL、文本和电子邮件,因此可以推断它们也支持数字验证。
如果可行,请告诉我!
活跃的管理员应该已经在进行这些数字类型的输入,但浏览器不会阻止输入其他字符。
下面是我用的。我通过将其放入 active_admin.js:
所需的文件中,将其全局包含在活动管理员中
咖啡脚本:
$ ->
$("input[type='number']").keydown (c) ->
return false if c.shiftKey
return false unless c.which in
[8,9,13,37,38,39,40,45,46,48,
49,50,51,52,53,54,55,56,57,96,97,98,
99,100,101,102,103,104,105,110,
173,189,190]
如果你只使用 JS 你可以转换它 here.
尽管如此,我仍会添加服务器端验证。
我有一个用于在 ActiveAdmin 中创建新资源的表单。我的两个字段是整数(peak_count 和 off_peak_count)。
如果我在这些字段中输入字符串,我将收到数据库错误的堆栈跟踪,因为输入的字段类型错误。在尝试将数据输入数据库之前,如何让 ActiveAdmin 在客户端强制执行字段的输入类型?
这是我的表格:
form do |f|
f.inputs do
if f.object.new_record?
f.input :name
else
f.input :id, :input_html => {:disabled => true}
f.input :name, :input_html => {:disabled => true}
end
f.input :peak_count
f.input :off_peak_count
end
f.actions
end
对于客户端验证,您应该能够将 :as => :number
作为过滤器添加到您的输入字段中。我知道 ActiveAdmin 支持 URL、文本和电子邮件,因此可以推断它们也支持数字验证。
如果可行,请告诉我!
活跃的管理员应该已经在进行这些数字类型的输入,但浏览器不会阻止输入其他字符。
下面是我用的。我通过将其放入 active_admin.js:
所需的文件中,将其全局包含在活动管理员中咖啡脚本:
$ ->
$("input[type='number']").keydown (c) ->
return false if c.shiftKey
return false unless c.which in
[8,9,13,37,38,39,40,45,46,48,
49,50,51,52,53,54,55,56,57,96,97,98,
99,100,101,102,103,104,105,110,
173,189,190]
如果你只使用 JS 你可以转换它 here.
尽管如此,我仍会添加服务器端验证。