Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/unit-testing/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 正在绕过jQuery表单验证_Javascript_Jquery_Validation - Fatal编程技术网

Javascript 正在绕过jQuery表单验证

Javascript 正在绕过jQuery表单验证,javascript,jquery,validation,Javascript,Jquery,Validation,有人能告诉我jQuery验证有什么问题吗?它不是在验证我的表单,而是忽略代码,从而不检查输入 表格: <form class="form" accept-charset="UTF-8" action="URL-to-complete-form" method="POST" onsubmit="return validateForm();"> <input class="form-name" type="text" placeholder="Name"></div&g

有人能告诉我jQuery验证有什么问题吗?它不是在验证我的表单,而是忽略代码,从而不检查输入

表格:

<form class="form" accept-charset="UTF-8" action="URL-to-complete-form" method="POST" onsubmit="return validateForm();">
<input class="form-name" type="text" placeholder="Name"></div>
<input class="form-email" type="text"placeholder="Email"></div>
<input style="background-color: #fc8f12;" type="submit" value="Subscribe">
</div>
</form>

感谢大家的时间和帮助。

在我看来,您似乎没有采取任何措施阻止提交表单,因为表单中有“action=”行。。。您告诉它在提交时运行javascript函数并提交表单。您应该让javascript在表单验证后提交表单。有很多方法可以做到这一点。。。可能最简单的方法是将“提交”按钮改为“类型”按钮,而不是“提交”,然后将验证和提交绑定到该按钮的单击上。

由于您正在“干预”提交回发以进行验证,请更改代码以使其清晰,从表单中删除“提交”按钮,基于按钮单击进行验证,并使用有效数据执行您自己的表单自定义回发:

 <form class="form" accept-charset="UTF-8" method="POST" action="#">
        <input class="form-name" type="text" placeholder="Name"></div>
        <input class="form-email" type="text" placeholder="Email"></div>
        </div>
    </form>
    <button>Subscribe</button>

 $(function () {
            $('button').on('click', function (event) {
                validateForm();
            });

        });

        function validateForm() {
            // Validate Name
            var title = $(".form-name").val();
            if (!title) {
                alert("Please enter a name!");
                return false;
            }

            // Validate Email
            var email = $(".form-email").val();
            if (!email) {
                alert("Please an email address");
                return false;
            }

            if (!/(.+)@(.+){2,}\.(.+){2,}/.test(email)) {
                alert("Please enter a valid email");
                return false;
            }

            $.post('URL-to-complete-form', $("form").serialize(), function (data) {
                console.log('server call complete');
                console.log(data);
            });

        }

订阅
$(函数(){
$('button')。在('click')上,函数(事件){
validateForm();
});
});
函数validateForm(){
//验证名称
var title=$(“.form name”).val();
如果(!标题){
警报(“请输入名称!”);
返回false;
}
//验证电子邮件
var email=$(“.form email”).val();
如果(!电子邮件){
提醒(“请提供电子邮件地址”);
返回false;
}
如果(!/(.+)@(.+){2,}\.(.+){2,}/.test(电子邮件)){
警报(“请输入有效电子邮件”);
返回false;
}
$.post('URL-to-complete-form',$('form').serialize(),函数(数据){
log('server call complete');
控制台日志(数据);
});
}
这里还有一个正在使用的JSFIDLE:

HTML:

<form id="form1" ...

您是否检查了浏览器的控制台是否有任何错误?您的javascript中肯定有一个错误,导致表单提交。。检查控制台并解决错误。函数总是返回false
<form id="form1" ...
$("#form1").on("submit", function(){
  if($("input[name=firstName]").val() == ""){
    // errors here
    return false;
  }
});