如何停止表单提交并使用javascript进行验证
How can I stop a form submit and validate with javascript?
我遇到了一个无法更改的表单:
<form id="mx_locator" name="mx_locator" method="post" action="search-results">
<!-- form elements -->
<span><input type="image" src="/images/search.png" onclick="loader()"></span>
</form>
它位于CMS内部,知道转发表单数据并在单击时生成结果页面。loader函数调用只是为了达到某种效果而处理添加/删除类。
我被要求编写一个javascript来验证表单。有一个邮政编码字段和一个城市字段。其中一个必须填写。不是两者都有,而是其中之一。因此,当有人点击该按钮时,我的javascript必须停止提交,检查这些字段,只有在它们良好的情况下才能继续。
简而言之,我该怎么做呢?最重要的是,我担心无论js做什么,表单都会被处理,因为CMS控制着它。我根本无法更改表单html。我可以添加JS。
首先将onsubmit属性添加到表单标记中。
<form id="mx_locator" onsubmit="return ziporcity(this)" name="mx_locator" ...
然后在您的文档中添加一个脚本标记,该标记包含或链接到函数ziporcity,您可以这样写:
<script>
function ziporcity(f) { return /'d{5}/.test(f['zipFieldName'].value) || /'S/.test(f['cityFieldName'].value); }
</script>
这个简单的验证函数检查其中一个或另一个或两者是否为真,zip字段是否包含5个连续数字(9个数字也可以通过(,和/或city字段是否包含非空白。
您需要将zipFieldName更改为表单中zip字段的name="…"属性中包含的名称,并将cityFieldName改为city字段的名称。
<script>
$(document).ready(function() {
$("#mx_locator").submit(function() {
var isValid = callSomeValidationFunctionThatReturnTrueFalse();
return isValid; // the key is return false will prevent submit
});
});
</script>
您需要包含jQuery。如果你的表单提交事件被CMS完全淹没,这真的很奇怪,那么就隐藏起来,在它的位置创建一个新表单。
<script>
$(document).ready(function() {
// save old form html and hide
var myForm = $("#mx_locator");
var formHtml = myForm.html();
myForm.html("").hide();
// append new form in its place and
var myNewForm = $('<form id="mx_locator2" name="mx_locator2" .../></form>');
myNewForm.html(formHtml);
myNewForm.insertAfter(myForm);
});
</script>
相关文章:
- Javascript验证问题
- javascript验证和ajax调用同时不起作用
- 外部JavaScript验证不起作用
- JAVASCRIPT验证表单中的日期
- javascript验证编号未检测到空表单字段
- 通过Javascript验证PHP变量
- Javascript验证(gen_validatorv4.js)-基于复选框结果
- 基于lur的Javascript验证
- 想要使用 JavaScript 验证用户名和密码
- 使用javascript验证Ajax组合框
- 使用javascript验证电话号码无效
- 计算器的Javascript验证
- 时间字段上的JavaScript验证(不接受0:00格式)
- 如何使用javascript验证表单中的数据,然后调用php页面
- 使用JavaScript验证用户交互/输入-这是一种很好的方法
- Javascript验证:页面仍在提交
- 如何使用JavaScript验证下拉菜单
- 使用javascript验证只有一个特殊字符的字符串
- 编辑图像字段javascript验证空白图像不插入
- asp.net mvc中的javascript验证不适用于登录表单