Javascript 提交前验证表单

Javascript 提交前验证表单,javascript,forms,Javascript,Forms,我可以提交一个表单并使用javascript中的一个简单匿名函数进行验证 document.getElementById('myForm')。onsubmit=function(){ if(document.getElementById('email')。值=“”){ document.getElementById('errormessage').innerHTML=“请至少提供一个电子邮件地址”; 返回false; }否则{ 返回true;//注意这一点 } }; 在上面使用匿名函数的示例中

我可以提交一个表单并使用javascript中的一个简单匿名函数进行验证

document.getElementById('myForm')。onsubmit=function(){
if(document.getElementById('email')。值=“”){
document.getElementById('errormessage').innerHTML=“请至少提供一个电子邮件地址”;
返回false;
}否则{
返回true;//注意这一点
}
};
在上面使用匿名函数的示例中,我可以在提交文档时简单地分配返回值并防止页面被提交,而在下面的示例中,我使用
addEventListener
在表单提交时添加事件,并通过validate函数对其进行进一步评估。我还将返回值设置为true或false,但这种方法似乎不起作用,页面被提交。我认为我返回的值是错误的

函数addEventHandler(节点、evt、func){
if(node.addEventListener)
node.addEventListener(evt,func);
其他的
node.attachEvent(“on”+evt,func);
}
函数initializell(){
addEventHandler(document.getElementById('myform'),'submit',validate);
}
函数验证(){
if(document.getElementById('email')。值=“”){
document.getElementById(“errormessage”).innerHTML=“请至少提供一封电子邮件”;
返回false;
}否则{
返回true;
}
}
addEventHandler(窗口“加载”,初始化全部);

我应该如何以这种方式返回值,以防止表单提交或提交表单?

您将此问题发布在jQuery下,因此我将为您提供jQuery解决方案:

$('#myform').on('submit', function () {
    if($('#email').val() == ""){
        $('#errormessage').html("Please provide at least an email ");
        return false;
    } else {
        return true;
    }
});
请注意,我使用了jQuery 1.7
.on()
函数,在本例中,它取代了早期版本的
.bind()
函数

--更新--

下面是上述解决方案的一部分:

使用类似的方法

<form ...... onsubmit="return your validationFunctionThatReturnTruOrFalse() " >

我认为出现问题是因为您使用的是with,因此您可以用于Firefox和其他浏览器。尝试此演示:


您可能希望研究使用预构建的javascript表单验证库。用javascript进行手动验证是一个史诗般的难题。很抱歉,我认为jquery也是javascript库,所以使用jquery的人可以给出答案。