Javascript 现场检查所有表格

Javascript 现场检查所有表格,javascript,jquery,html,forms,Javascript,Jquery,Html,Forms,我需要在我的网站上查看一些表格(~10)。 我写了一个函数,它会改变输入的类别,所以它们会变成红色。 此代码不工作,因为返回validate(),但如果我删除返回并只分配处理程序,则所有输入都将带有.error类,已在页面加载中 我必须做些什么才能使其正常工作?您需要将函数引用分配给onsubmit处理程序,而不是validate方法返回的值 formList[i].onsubmit = validate; //this inside validate will refer to the su

我需要在我的网站上查看一些表格(~10)。
我写了一个函数,它会改变输入的类别,所以它们会变成红色。

此代码不工作,因为
返回validate(),但如果我删除
返回
并只分配处理程序,则所有输入都将带有.error类,已在页面加载中


我必须做些什么才能使其正常工作?

您需要将函数引用分配给onsubmit处理程序,而不是validate方法返回的值

formList[i].onsubmit = validate; //this inside validate will refer to the submitted form
演示:

但是我更喜欢使用jQuery提交处理程序(
这个
在validate方法中会引用单击的表单)

演示:


注意:它有一个缺点,即由于您从validate返回
false
,它将阻止默认操作和提交事件的传播。

函数validate的默认返回为true,而不是false,只有在找到至少一个空白字段时才会变为false。您的代码允许提交空白表单,无需任何编辑。我在问题中添加了
函数validate()
@Arun P JohnyForm仅当所有字段为空时才提交。如果至少提交1份填写字段的表格。这是不对的@阿伦·P·约翰只是一个提示。如果在控件和jQuery之间循环,很可能是做错了什么。
window.onload = function() {
    var formList = document.getElementsByTagName("form");
    for (var i=0; i < formList.length; i++) 
            formList[i].onsubmit = return validate();
}
formList[i].onsubmit = validate; //this inside validate will refer to the submitted form
jQuery(function(){
    $('form').submit(validate)
})