很难让Javascript表单进行验证

很难让Javascript表单进行验证,javascript,forms,validation,Javascript,Forms,Validation,几个小时以来我一直在寻找答案,但至今仍未找到解决方案。我试过寻找类似的问题,但没有一个真的有用 因此,基本上,不起作用的是表单提交时没有任何错误消息,即使表单上有错误。基本上,我可以将name字段留空,一旦按下按钮,表单仍将提交。希望这是有意义的。谢谢你的帮助 代码: 尝试在输入元素中设置required=“true”: <input type="text" required ="true"... 您犯了语法错误,首先将emailOne声明为局部变量,然后尝试在全局范围内访问它。您应该在

几个小时以来我一直在寻找答案,但至今仍未找到解决方案。我试过寻找类似的问题,但没有一个真的有用

因此,基本上,不起作用的是表单提交时没有任何错误消息,即使表单上有错误。基本上,我可以将name字段留空,一旦按下按钮,表单仍将提交。希望这是有意义的。谢谢你的帮助

代码:


尝试在输入元素中设置
required=“true”

<input type="text" required ="true"...

您犯了语法错误,首先将emailOne声明为局部变量,然后尝试在全局范围内访问它。您应该在全局范围内声明变量emailOne和emailTwo

var emailOne;
var emailTwo; 
function validateFinale()
{
 emailOne = document.getElementById("em1").value;
 emailTwo = document.getElementById("em2").value;
 var name = document.getElementById("name1").value;

一个黄金提示,在浏览器中尝试按F12键,所有错误消息都会显示在控制台中。

您至少有两种完全不同的错误类别。您确实需要打开JavaScript控制台,自己进行一些调试。查看您收到的错误消息。使用Google帮助您理解它们。compare()不返回值。在编写此代码的过程中,存在一些无意义的和/或语法错误。接受@Quentin的建议,学习如何调试代码。我明白了。谢谢你的建议。中间有一个工作区。我对validateFinale函数的声明方式做了一点修改,因为jsfiffle将所有javascript放在函数onload中。所以我简单地把它附加到全局对象窗口。啊!谢谢你的帮助。
var emailOne;
var emailTwo; 
function validateFinale()
{
 emailOne = document.getElementById("em1").value;
 emailTwo = document.getElementById("em2").value;
 var name = document.getElementById("name1").value;