Javascript 导致表单未经验证而提交的语句
我一直在绞尽脑汁想弄明白为什么在Javascript 导致表单未经验证而提交的语句,javascript,Javascript,我一直在绞尽脑汁想弄明白为什么在if语句中添加一行文本会导致表单在未经验证的情况下提交 以下是导致问题的代码部分: var firstName = document.getElementById("firstName"); // if first name is empty if (firstName.value == "") { var fnError = document.getElementById("fnError"); fnError.innerHTML = "*Ple
if
语句中添加一行文本会导致表单在未经验证的情况下提交
以下是导致问题的代码部分:
var firstName = document.getElementById("firstName");
// if first name is empty
if (firstName.value == "") {
var fnError = document.getElementById("fnError");
fnError.innerHTML = "*Please enter your first name";
fnResult = false;
} else {
// Store firstName using local storage
localStorage.setItem("firstName", firstName.value);
}
我试图在else
语句中输入以下代码行:
fnError.innerHTML = "";
使用onsubmit
事件处理程序验证表单:
var btnSubmit = document.getElementById("formUser");
btnSubmit.onsubmit = validate;
验证函数返回true
或false
,具体取决于是否满足验证条件。在我尝试添加这行代码之前,所有这些都可以正常工作,然后在用户下次按下submit按钮时发送表单,无论是否满足条件
我是JavaScript新手,所以我可能遗漏了一些明显的东西
非常感谢 这里有一个可能的问题:如果在代码中插入有问题的行,如下图所示,那么函数在返回值之前就失败了。在“else”块中,fnError将在范围内,但其值未定义。试图对未定义的值设置属性会导致错误
} else {
// Store firstName using local storage
fnError.innerHTML = "";
localStorage.setItem("firstName", firstName.value);
}
要解决此问题,请在“if”块之前移动以下行:
现在,fnError变量将在“if”和“else”块中包含对错误消息元素的有效引用。缺少重要代码。您是否可以完成它,或者创建一个JSFIDLE,在其中显示问题?我会在每个必填表单字段中写入
required
,如
所示。“formUser”是您表单的id吗?您的浏览器控制台中是否有异常?请说明如何声明fnsult
变量。可能它会被绑定到窗口
上下文?我不能发布所有代码,因为它是用于评估的,然后会出现剽窃问题-这非常令人沮丧。我正试图编辑第二条语句:fnError.innerHTML=“”;。正在清除错误消息。formUser是表单的ID,fnResult在函数顶部声明如下:var fnResult=true@对于那些浏览器不支持required
属性的人来说,有一个JavaScript回退还是不错的。
var fnError = document.getElementById("fnError");