Rails在提交之前验证form_for

时间:2014-07-14 23:47:13

标签: javascript jquery ruby-on-rails forms

我正在尝试验证所有必要的字段在我提交之前已经在我的form_for中完成,并且95%在那里但是它仍然在检查并发出警报之前提交。

以下是表单的开头:

<%= form_for Product.new, :options => {:id => "new_listing", :onSubmit => "validateForm()"}, :url => {:action => "create"}, :html => {:multipart => true}, :builder => Judge::FormBuilder do |f| %>

这是JavaScript:

<script>
  validateForm = function(){
    judge.validate(document.getElementById('name_input'), {
        valid: function(element) {
          element.style.border = '1px solid green';
        },
        invalid: function(element, messages) {
          element.style.border = '1px solid red';
          alert(messages.join(','));
        }
      }); 
  };

</script>

现在我需要做什么来确保在提交到后端之前没有填写name_input字段时抛出警报?与布尔有关但我不是这里的专家。

2 个答案:

答案 0 :(得分:0)

当验证无效时,您可以尝试返回false。使用onSubmit javascript函数时,除非js返回false,否则它将继续执行下一步操作。

答案 1 :(得分:0)

这是一个盲目的猜测,但这有机会工作:

judge.validate(document.getElementById('name_input'), {
    ...,
    invalid: function(element, messages) {
      ...
      return false;
    }
});