【发布时间】:2014-10-06 07:56:45
【问题描述】:
我在我的项目中使用 jQuery v1.7.1。
我有以下 HTML 表单:
<div class="alert-danger">
</div>
<form action="index.php" class="navbar-form pull-right" id="formzip" method="post">
<input type="hidden" class="form-control" name="op" id="op" value="zip_code">
<input type="hidden" class="form-control" name="form_submitted" id="form_submitted" value="yes">
<input style="width: 115px;" type="text" placeholder="Enter the zip code" name="zip" id="zip" value=""> <i class="icon-zip" style="margin-top:3px;" onclick='$("#formzip").submit();'></i>
</form>
现在我想使用 jQuery 验证带有 id="formzip" 的表单。需要应用以下验证:
- 如果具有 id zip 的输入字段在提交表单时不包含任何值。
- 如果具有 id zip 的输入字段包含无效的美国邮政编码值或任何不是有效美国邮政编码的值。
我想在<div class="alert-danger"></div> 中显示相关的错误消息,并希望阻止表单提交。即当前显示的页面应保持原样。
验证美国邮政编码所需的正则表达式字符串如下:
"/^([0-9]{5})(-[0-9]{4})?$/i"
有人可以帮我实现这个功能吗?
如果有人能帮助我,那对我会有很大的帮助。
感谢您抽出宝贵的时间来了解我的问题。如果您想了解有关我的问题的更多信息,请随时问我。
等待您宝贵的回复。
提前致谢。
【问题讨论】:
-
你有没有尝试过自己解决这个问题?
-
@Derija93:实际上我已经在服务器端使用 PHP 进行了验证,但现在我必须在客户端使用 jQuery 进行验证,这就是我寻求帮助的原因。
-
嗯,这是一个开始。你很了解 jQuery 吗?一个建议是简单地处理表单提交事件并在必要时通过执行
$('#formzip').on('submit', function(jqEvt){ jqEvt.preventDefault(); });取消它。这将完全阻止表单提交,它应该很容易适应您的需求。 -
@Derija93:感谢您的评论。但是,如果您可以发布您的可行代码作为答案,那对我和其他面临此类问题的人来说会很棒。您能否发布您的完整代码作为答案?
-
我没有必要重新发明轮子。正如其他两个答案所示,已经有很多插件可供验证。如果您对这些插件的工作原理感兴趣,您也可以只查看这些插件的源代码......或this SO question。
标签: javascript jquery forms validation jquery-1.7