2016-07-04 75 views
0

我有以下特征的一种形式:的Rails的Javascript的onsubmit验证()未捕获的ReferenceError:验证没有定义

= 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; 
    } 
}); 

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

Uncaught ReferenceError: validate is not defined

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

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

+1

将'validate()'函数定义放在jQuery的document.ready处理程序之外。或者更好的是,将事件处理程序附加到不显眼的JS,而不是过时的'on *'事件属性 –

+0

我以为我尝试过,但它似乎并不是因为它现在可以工作。谢谢。 –

回答

0

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

相关问题