【问题标题】:Rails Javascript onsubmit validate() Uncaught ReferenceError: validate is not definedRails Javascript onsubmit validate() Uncaught ReferenceError: validate is not defined
【发布时间】:2016-11-06 07:39:40
【问题描述】:

我的表格有以下特点:

= nested_form_for reservation, html: { onsubmit: "return validate()"} do ...

还有以下文件reservation.js:

jQuery(function() {
  $('div.modal').on('loaded.bs.modal', function(e) {
    ...some code...
  });
  $('div.modal').on('shown.bs.modal', function(e) {
    ...some code...
  });

  function validate(){
    var guests = 0;
    $('.guests-input').each(function(i, e){
      guests = guests + $(e).val();
    });
    if (guests < 1){
      alert('Sum of percentage must be 100');
      return false;
    }
    return true;
  }
});

但是,当我点击提交按钮时,我得到了错误:

未捕获的 ReferenceError:未定义验证

我不知道我应该在哪里定义它。我搜索了其他问题,但我无法解决我的问题。我也不完全确定我应该去哪里看。

如果需要,我会编辑更多信息。

【问题讨论】:

  • validate() 函数定义放在 jQuery 的 document.ready 处理程序之外。或者更好的是,使用不显眼的 JS 附加事件处理程序,而不是过时的 on* 事件属性
  • 我以为我试过了,但似乎不是因为它现在有效。谢谢。

标签: javascript jquery ruby-on-rails validation


【解决方案1】:

正如 Rory McCrossan 在评论中所说,解决方案是将 validate() 定义移出 jQuery 的 document.ready 处理程序之外。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-30
    • 2015-12-24
    • 1970-01-01
    • 2021-02-23
    • 2021-12-08
    • 2020-11-06
    相关资源
    最近更新 更多