Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/70.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_Forms_Validation - Fatal编程技术网

Javascript jQuery验证脚本和覆盖防止页面';提交';

Javascript jQuery验证脚本和覆盖防止页面';提交';,javascript,jquery,forms,validation,Javascript,Jquery,Forms,Validation,我正在使用jQuery验证插件(来自MS CDN的1.8.1)验证表单提交时的输入字段。这个脚本总共有1000多行,尽管它提供了一种很好的验证字段的方法(是的,我也会在事后使用php进行检查),但我还是考虑将其丢弃。我已经达到了脚本运行良好的程度 更新-最终代码,正在运行。 代码已更新,但我仍遇到问题。现在,submit函数可以工作,但它从不验证字段。(我知道在长度检查之后放置了一个简单的alert()测试,它正在到达字段: <script type="text/javascrip

我正在使用jQuery验证插件(来自MS CDN的1.8.1)验证表单提交时的输入字段。这个脚本总共有1000多行,尽管它提供了一种很好的验证字段的方法(是的,我也会在事后使用php进行检查),但我还是考虑将其丢弃。我已经达到了脚本运行良好的程度

更新-最终代码,正在运行。 代码已更新,但我仍遇到问题。现在,submit函数可以工作,但它从不验证字段。(我知道在长度检查之后放置了一个简单的alert()测试,它正在到达字段:

    <script type="text/javascript">
$(function(){

  $('#page_submit').click(function() {
    $('#signupform').submit(); 
  });

  if ($("#signupform").length > 0) { 
    $("#signupform").validate({ 
        rules: {
            fname: 'required',
            lname: 'required',
            websitename: 'required',
            address: 'required',
            city: 'required',
            state: 'required',
            zip: { required: true, digits: true },
            password: 'required',
            passwordconf: 'required',
            email: { required: true, email: true }
        },
        messages: {
            fname: 'Your first name is required.',
            lname: 'Your last name is required.',
            email: { required: 'Your email address is required.',
            email: 'Please enter a valid email address.'}
        },
        submitHandler: function(form) {
            $('body').append('<div id="cboxOverlay"></div>');
            $('#cboxOverlay').show();
            form.submit();
        }
    });
  }
});
</script>

$(函数(){
$(“#第_页提交”)。单击(函数(){
$(“#注册表单”).submit();
});
如果($(“#signupform”).length>0{
$(“#注册表单”).validate({
规则:{
fname:“必需”,
lname:“必需”,
网站名称:“必需”,
地址:'必填',
城市:“必选”,
声明:“必需”,
zip:{必需:true,数字:true},
密码:“必需”,
passwordconf:'必需',
电子邮件:{必需:true,电子邮件:true}
},
信息:{
fname:“需要您的名字。”,
lname:'需要您的姓氏',
电子邮件:{必需:'您的电子邮件地址是必需的。',
电子邮件:“请输入有效的电子邮件地址。”
},
submitHandler:函数(表单){
$('body')。追加('');
$('#cboxOverlay').show();
表单提交();
}
});
}
});
注意:上面的代码已经修改,现在可以使用了。在这种情况下,必须在click函数之后添加submit()函数,因为我们正在单击图像并添加submit操作,而不是表单中的submit按钮


以前,我对按钮图像本身进行了操作,但为了防止JS干扰,我将操作移到了jquery语句中。现在单击按钮时,页面会自动提交,并且不会运行验证。

您仍然需要提交表单,是吗

    submitHandler: function(form) {  
        $('body').append('<div id="cboxOverlay"></div>');
        $('#cboxOverlay').show();
        form.submit();  //*******************
    }
submitHandler:function(form){
$('body')。追加('');
$('#cboxOverlay').show();
表单提交()//*******************
}

“//代码块//……这里没有问题。”我看到了一个大问题。我看到了突兀的JavaScript,jQuery就是为了解决这个问题而创建的。@Adam Terlson-你能解释一下吗?使用验证插件有什么问题吗?@Adam Terlson-想解释一下你的评论吗?@JM4-我不是指你的插件使用问题,而是指你是如何“附加”的按钮事件单击事件:
onClick=“$('#signupform')。submit();return false;”
应该是不引人注目的,意思是在HTML之外并像这样绑定:
$('#yourbutton')。单击(函数(e){$('#signupform')。submit();e.preventDefault();)
只需删除
return false;
并用
e.preventDefault()
替换它就可以解决您的问题,但这只是一个猜测。下面是一些有用的进一步阅读:您对Validate()的调用是将函数绑定到事件,例如在调用Validate()之前调用的submit事件显然,这是行不通的。当代码“起作用”时,我完全不同意你的逻辑写得很差,也不容易维护。在这种情况下,学习正确的方法并正确地书写是完全值得的。这只需要几分钟,而不是几个小时。天哪,我的错。感谢你帮助我认识到这一点。尽管我很惊讶,不管怎样,表单都不会自动提交。我感谢你的帮助。不会吗那么他不是要调用submit两次吗?为什么不再次调用它只是创建一个很好的无限循环,因为他显然是通过首先调用$().submit()来实现该函数的?@Adam Terlson-据我所知,一旦运行验证脚本,submit()函数就会被禁用,因此必须再次调用它(因此,我在上面的评论似乎是submithandler内置的)。注意-根据jquery文档,必须直接调用它:注意:一旦实现了这一点,由于某种原因,提交功能在iOS中不起作用。原因尚待发现。