输入字段组合的表单验证

约翰

我有一个包含多个字段的表格。在Rails方面,有些验证可以正常工作。但是我也有一个要求,其中应该验证两个输入字段的组合。

这些属性是project_idunbillable_id它们中只有一个应该用值填充,因此当两个字段都填充或两个字段都为空时,它应该会失败。我应该怎么做?

这是控制器:

  def create
    authorize! :create, Activity

    @activity = Activity.new(activity_params)
    respond_to do |format|
      if @activity.save
        format.js { render :action => "create_success"}
      else
        format.js { render :action => "create_failure"}
      end
    end
  end

这是create_failure.js.erb:

alert("Failed to upload record: <%= j @activity.errors.full_messages.join(', ').html_safe %>");
交换

我假设您正在寻找XOR验证

在您的情况下,app/models/activity.rb应按以下方式进行操作:

选项1:

类Activty <ActiveRecord :: Base

validates :project_id, presence: true, allow_nil: true
validates :unbillable_id, presence: true, allow_nil: true


validate :xor_activity

private

def xor_activity
  unless (project_id.blank? ^ unbillable_id.blank?)
    errors.add(:base, "Specify a Project or a Unbillable, not both")
  end
end

结尾

选项2:形成一个数组并计算元素数-https: //stackoverflow.com/a/7369899/1125893

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

表单验证立即合并输入字段

来自分类Dev

表单验证立即合并输入字段

来自分类Dev

删除输入字段上的表单验证

来自分类Dev

验证表单输入字段的正确方法

来自分类Dev

angularjs其他表单验证规则(非输入字段验证)

来自分类Dev

验证jQuery表单字段组合的更好方法

来自分类Dev

在使用jQuery输入时验证表单输入字段吗?

来自分类Dev

仅在提交或用户输入时验证表单字段

来自分类Dev

Angular.js:对指令生成的输入字段进行表单验证

来自分类Dev

没有名称的Angularjs表单验证输入字段

来自分类Dev

验证具有相同输入字段名称的表单?

来自分类Dev

具有400个输入字段的jQuery表单验证

来自分类Dev

没有名称的Angularjs表单验证输入字段

来自分类Dev

AngularJs使用指令中的输入字段来验证表单

来自分类Dev

Angular.js:对指令生成的输入字段进行表单验证

来自分类Dev

使用包含RegEx和Jquery的输入字段来验证表单

来自分类Dev

jQGrid-清除验证错误时的添加表单输入字段

来自分类Dev

如何使用输入追加来验证表单字段

来自分类Dev

jQuery表单输入字段旁边的验证复选标记

来自分类Dev

无法使用 PHP 和 JavaScript 验证表单输入字段

来自分类Dev

如何验证 Laravel 中的输入一致性(或字段/字段组合之间的关系)?

来自分类Dev

需要输入表单验证

来自分类Dev

Axapta表单输入字段

来自分类Dev

如何设置表单输入字段的值并重新检查其表单验证错误

来自分类Dev

findAll验证输入字段

来自分类Dev

输入字段的验证

来自分类Dev

验证表单-如果字段为空,则向每个空字段添加类,然后不提交。坚持组合成函数

来自分类Dev

表单字段验证条件

来自分类Dev

选择字段中的表单验证

Related 相关文章

  1. 1

    表单验证立即合并输入字段

  2. 2

    表单验证立即合并输入字段

  3. 3

    删除输入字段上的表单验证

  4. 4

    验证表单输入字段的正确方法

  5. 5

    angularjs其他表单验证规则(非输入字段验证)

  6. 6

    验证jQuery表单字段组合的更好方法

  7. 7

    在使用jQuery输入时验证表单输入字段吗?

  8. 8

    仅在提交或用户输入时验证表单字段

  9. 9

    Angular.js:对指令生成的输入字段进行表单验证

  10. 10

    没有名称的Angularjs表单验证输入字段

  11. 11

    验证具有相同输入字段名称的表单?

  12. 12

    具有400个输入字段的jQuery表单验证

  13. 13

    没有名称的Angularjs表单验证输入字段

  14. 14

    AngularJs使用指令中的输入字段来验证表单

  15. 15

    Angular.js:对指令生成的输入字段进行表单验证

  16. 16

    使用包含RegEx和Jquery的输入字段来验证表单

  17. 17

    jQGrid-清除验证错误时的添加表单输入字段

  18. 18

    如何使用输入追加来验证表单字段

  19. 19

    jQuery表单输入字段旁边的验证复选标记

  20. 20

    无法使用 PHP 和 JavaScript 验证表单输入字段

  21. 21

    如何验证 Laravel 中的输入一致性(或字段/字段组合之间的关系)?

  22. 22

    需要输入表单验证

  23. 23

    Axapta表单输入字段

  24. 24

    如何设置表单输入字段的值并重新检查其表单验证错误

  25. 25

    findAll验证输入字段

  26. 26

    输入字段的验证

  27. 27

    验证表单-如果字段为空,则向每个空字段添加类,然后不提交。坚持组合成函数

  28. 28

    表单字段验证条件

  29. 29

    选择字段中的表单验证

热门标签

归档