2013-04-17 79 views
2

我買了我的驗證碼的問題...我有一個表格有兩個字段(user和pass)和jQuery函數執行上提交功能:的Javascript的onsubmit功能自動執行

jQuery(document).ready(function($) { 
    $('#login-form').on('submit', validateData()); 

    function validateData() { 
     userInput = $('#in-user'); 
     userCntrl = userInput.closest('.control-group'); 
     passInput = $('#in-pass'); 
     passCntrl = passInput.closest('.control-group'); 

     userCntrl.addClass('error'); // This executes on page load, not on submit 

     formSubmit = false; 

     console.log(userInput.val()); // This logs on page load, not on submit 

     return formSubmit; 
    } 
}); 

的事實上,這段代碼運行在頁面加載,但onSubmit什麼也沒有發生......

我敢肯定,這是一個容易的,但我看不到一個解決方案。

回答

6

您需要:

$('#login-form').on('submit', validateData); 

validateData後缺少括號。

當你擁有它,你呼籲在頁面加載的功能,並設定它的返回值(false)作爲submit處理程序的形式。

(你應該做的定義validateData功能

+1

OMG!我的臉現在正在融化......非常感謝=) –

+0

函數將在一個單獨的文件中,但忽略它,爲什麼我應該首先聲明函數? –

+2

@ AxelA.Grazx:沒有技術原因,但是風格問題 - 在定義它之前引用當前塊中的函數是有效的JavaScript,但看起來很奇怪,而且如果您將編碼樣式更改爲validateData = function(){...}'。 – RichieHindle

3

應該是:

$('#login-form').on('submit', validateData);