2016-07-04 77 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()定義。

相關問題