Javascript onSubmit函数自动执行
我的验证代码有问题。。。我得到了一个包含两个字段(user,pass)和一个jQuery函数的表单,该函数在提交时执行一个函数:Javascript onSubmit函数自动执行,javascript,jquery,html,Javascript,Jquery,Html,我的验证代码有问题。。。我得到了一个包含两个字段(user,pass)和一个jQuery函数的表单,该函数在提交时执行一个函数: jQuery(document).ready(function($) { $('#login-form').on('submit', validateData()); function validateData() { userInput = $('#in-user'); userCntrl = userInput.c
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;
}
});
事实上,此代码在页面加载时运行,但在提交时不会发生任何事情
我相信这很简单,但我看不到解决方案。应该是:
$('#login-form').on('submit', validateData);
你需要:
$('#login-form').on('submit', validateData);
注意validateData
后面缺少括号
现在,您正在调用页面加载时的函数,并将其返回值(false
)设置为表单的submit
处理程序
(您应该在定义
validateData
函数后执行此操作。)函数将位于单独的文件中,但忽略这一点,为什么我要首先声明函数?@AxelA.Grazx:没有技术原因,但风格问题-在定义有效JavaScript之前引用当前块中的函数,但是看起来很奇怪,如果将编码样式更改为validateData=function(){…}
,就会失败。