在我on Rails项目红宝石,我有一组滑块的形式是这样的:呼叫轨功能的onChange
<%= range_field(:subproject, :ans1, in: 0..100, id: 'slider1', :class => 'range range--light', :'data-init' => 'auto', :step => 1, :value => $project_value_1.to_i) %>
滑块的总价值应始终等于100 FO rthe形式可提交。否则,显示错误消息。所有由该函数处理:
$sumOfProjectValues = $project_value_1.to_i + $project_value_2.to_i + $project_value_3.to_i + $project_value_4.to_i + $project_value_5.to_i
if $sumOfProjectValues == 100
message = 'Project can be saved'
btnStyle = 'confirmation'
hideDisabled = 'none'
else
message = 'Project quota must add up to 100% before saving'
btnStyle = 'alert'
hideEnabled = 'none'
end
我想每次调用这个表单验证功能的价值变动(有点像在JS的方法的onChange)。 我该怎么做?
你真的希望这Rails代码内或内的JS(验证语法类似于Ruby,但你在谈论的onChange JS)发生的呢? – wiesion
@wiesion我更喜欢铁轨。尽管如此,Ruby没有onChange方法。这将是理想的,这就是我提到它的原因。 – JustusP
我认为您需要仔细研究[ActiveRecord验证](http://guides.rubyonrails.org/active_record_validations.html) - 您可以将您的100%检查作为验证器来执行。如果它没有通过,则该对象不能被保留,并且可以传递错误消息。 – wiesion