jQuery / Rails:提交时触发JS事件;仅在验证通过时

时间:2014-05-15 11:20:46

标签: javascript jquery ruby-on-rails ruby-on-rails-3 forms

在rails中,某些表单会自动在客户端进行验证,因此当表单字段中包含不适当的值时,表单不会被提交。你得到像rails form validation

这样的东西

我想触发一个javascript事件(在这种情况下显示一个旋转加载器),但只有在没有发生时,表单实际上才会被提交。

目前我有

$(document).ready( function () {
  $('#new_import').on("submit", function () {
    $('#product_import_loading').slideDown();
  });
});

但即使验证阻止提交,也会触发。

我该怎么办?

1 个答案:

答案 0 :(得分:2)

我非常确定没有关于表单验证的固有jquery-ujs事件,但只有当表单通过客户端验证时,您才能轻松使用jQuery validation之类的内容来执行某些操作。

这可能适合您的需求(我对插件没有多少经验):

$("#new_import").on('submit', function() {
  if($(this).valid()) {
    // show your spinner
  }
  else {
    // do other stuff
  }
});