如何使用JavaScript验证联系人表单
How to validate a contact form using JavaScript?
我制作了一个联系表格:
<form action="mailto:myemail@me.com" method="post" enctype="plain/text">
<label for="name">Name:</label> <input type="text" name="name" />
<label for="email">Email:</label> <input type="text" name="email" />
<br clear="all" />
<input type="submit" value="Compose" />
</form>
我想创建一个javascript表单验证器,而不必使用像PHP这样的服务器端语言。有什么想法吗?
这是个坏主意。可以通过多种方式绕过JavaScript和JavaScript验证。
- 用户可以告诉浏览器不要执行页面上的任何JavaScript。如果表单本身不依赖于JavaScript,那么表单仍然会显示,并且操作页面仍然存在,但您的所有验证都消失了
- DOM可以由用户编辑。Chrome、Firefox和IE等网页开发工具使更改表单属性变得轻而易举。这包括从表单中删除
onsubmit
等属性。或者,用户可以简单地从网页使用的资源中完全删除JavaScript功能。这允许用户避免进行验证 - 用户可以将
POST
或GET
数据直接发送到操作URL,而无需浏览您的页面。这对攻击者来说很好,因为他们甚至可以在不通过浏览器的情况下将格式错误的表单注入到服务器中——他们可以使用终端,这要方便得多
总之,不要这样做允许用户控制验证是件坏事。用户可以关闭客户端JavaScript,但不能关闭PHP服务器端验证。如果您不想遭受尴尬的跨站点脚本攻击和其他漏洞,请使用PHP验证。
如果你正在寻找一个PHP表单验证库,你可以在互联网上找到很多。例如,我个人为一个这样的库做出了贡献,该库可以很好地评估POST
或GET
类型表单中的字段。我对自我推销表示歉意,为了安全起见,我必须坚持让您进行服务器端验证。
这并不是说客户端验证很糟糕,永远不应该使用。但它应该始终通过服务器端验证进行备份。您应该将客户端验证视为在不重新加载的情况下通知用户其表单输入存在问题的一种方式,但始终使用服务器端验证来实际查看输入是否存在问题。
看看这个实际的例子。
$('#form1').submit(function() {
// Store messages
var msgs = [];
// Validate name, need at least 4 characters...
var name = $('[name=name]', this);
if(name.val().length < 4) {
msgs.push('- Name need at least 04 characters;');
}
// Validate email [...]
// {CODE}
// Validate otherthings [...]
// {CODE}
if(msgs.length !== 0) {
alert("We have some problems:'n'n" + msgs.join("'n"));
return false;
}
});
注意不要把事情搞混。您想要进行客户端验证,这很好,但不像服务器端验证那样需要,服务器端验证只能在服务器上进行。
任何脚本kiddie仍然会设法将一些疯狂的数据发布到你的服务器上,所以你必须检查你的请求并在服务器端清理数据。
但是,如果你想在提交之前验证你的表单数据(这绝对是一个很好的标准),你应该使用众多可用的jQuery插件中的一个来获得最大的回报。
这里有一个:http://docs.jquery.com/Plugins/Validation#Example
如果您不喜欢使用jQuery,那么当输入字段失去焦点时,您可以始终指定onBlur=myFunction()
来执行所需的任何逻辑。
- 在验证和发送邮件后更改联系人表单的 html
- 在联系人表单中实现jQueryAJAX
- jquery.validator和一个页面上的两个联系人表单将在提交时验证空表单
- PHP&jQuery联系人表单错误
- Javascript按钮,它提交联系人表单7表单,然后重定向到URL
- 我正在验证一个联系人表单.我是不是过滤太多了
- 防止联系人表单在提交后消失
- PHP Angular JS联系人表单将't张贴
- 如何在联系人表单7 Wordpress中添加自定义javascript函数
- 如何使javascript联系人表单正确提交
- 在联系人表单中显示隐藏警告被延迟
- 基于AJAX的联系人表单7事件跟踪新的谷歌分析代码
- 映射的联系人表单在Jquery-1.11中无法正常工作
- 激活联系人表单上的输入字段需要在手机上点击2次
- 始终显示联系人表单中的问题成功消息
- HTML5,CSS3,PHP联系人表单不发送信息+添加必填字段
- 联系人表单-提交按钮不起作用
- 如何使用JS清理联系人表单后删除HTML5表单验证
- 联系人表单变量不会从部分标签传递到 javascript 中
- 如何在 html 弹出窗口中显示联系人表单