使用不显眼的 JavaScript 验证表单

Validating a form with unobtrusive JavaScript

提问人:Nirakander 提问时间:8/11/2015 最后编辑:Jan TuroňNirakander 更新时间:8/11/2015 访问量:54

问:

我正在帮助一个朋友为她的考试做准备。一个问题是创建不显眼的 javascript 来验证此 HTML 代码中的表单。似乎从未在此当前代码中输入 if 语句。我做错了什么?感谢您的帮助。

这是代码的 git:https://github.com/Nirakander/Validate-form

dom unobtrusive-javascript

评论

0赞 8/11/2015
请在问题中输入相关代码,谢谢。另外,什么是“不显眼的 JavaScript”?

答:

3赞 Jan Turoň 8/11/2015 #1

使用(引号之间没有空格,两个等号 - 我不确定空值是否到处都是空字符串或未定义)。if(current.value == "")

由于输入值(如果提供)是字符串,并且除空字符串外的任何值都是 true,因此使用 .if(!current.value)

HTML5表单验证也值得考虑。

对于您的评论:span-element 被“删除”,因为您的表单已发送并且页面重新加载。为了防止这种情况,请将 catch 中,其中 是处理程序函数的事件参数。我还建议使用(替换旧的错误消息)而不是(添加新的错误消息)。在代码中:e.preventDefault()einnerTextappendChild

function validateForm(e) { // event parameter
  try {
    ...
  }
  catch(oError){
    var errorRef = document.getElementById("errMsg");
    errorRef.innerText= oError; // innerText instead of appendChild
    e.preventDefault(); // this prevents form from sending
    // return false; // this is useful only in onsubmit content attribute; useless here
  }
}

我还建议对您的 git 存储库进行更改:fork

评论

0赞 Nirakander 8/11/2015
谢谢你的提示。不过这是行不通的。问题似乎出在输入 catch 语句之后。该文本被附加到我的 span-element 中,但会立即删除。
0赞 Jan Turoň 8/11/2015
@KarinAndersson在我的回答中看到更新。谢谢你的小瑞典语课:-)
0赞 Nirakander 8/12/2015
非常感谢您的帮助!这解决了我的问题。:-)