Javascript 检查onsubmit doenst work jquery contactform上的函数

Javascript 检查onsubmit doenst work jquery contactform上的函数,javascript,jquery,ajax,forms,validation,Javascript,Jquery,Ajax,Forms,Validation,更新 代码现在可以工作了 必须更改表单提交上的验证声明。删除了有效的VAR等,但现在可以使用了,谢谢 固定委托 $('form').on("submit", function(e) { //Prevent default e.preventDefault(); if(validateName() & validateSubject() & validateEmail() & val

更新

代码现在可以工作了

必须更改表单提交上的验证声明。删除了有效的VAR等,但现在可以使用了,谢谢

固定委托

$('form').on("submit", function(e) {

            //Prevent default
            e.preventDefault();

                    if(validateName() & validateSubject() & validateEmail() & validateMessage())
                    {
                        $('form #status').removeClass().addClass('processing').html('Processing...').fadeIn('fast');

                        // maak variable met alle data die verstuurd kan worden
                        var formData = $('form').serialize();

                        //functie om data naar server te sturen
                        submitForm(formData);
                        return true;
                    }

                    else
                    {
                        $('form #status').removeClass().addClass('error')
                            .html('<strong>Form is not filled in correctly</strong>').fadeIn('fast')
                        return false;
                    }

            });
$('form')。关于(“提交”,函数(e){
//防止违约
e、 预防默认值();
if(validateName()&validateSubject()&validateEmail()&validateMessage())
{
$('form#status').removeClass().addClass('processing').html('processing…').fadeIn('fast');
//maak变量满足所有数据的要求
var formData=$('form').serialize();
//功能om数据naar服务器
提交格式(formData);
返回true;
}
其他的
{
$('form#status').removeClass().addClass('error'))
.html(“表单填写不正确”).fadeIn('fast')
返回false;
}
});

您的问题是您没有阻止表单的提交。相反,您连接到Submit按钮,然后在出现问题时只显示一条错误消息(但是表单还是被提交了,因此错误消息没有帮助)

你可以/应该做一些事情来解决这个问题。首先,您可能希望将验证代码附加到表单的提交事件(而不是提交按钮的单击事件)。这将确保如果将来提供其他提交表单的方法,则不需要单独维护每个方法上的验证挂钩。因此,不是:

$('form #submit').click(function(e) {
您可能想要:

$('form').on("submit", function(e) {
其次,如果表单有问题,您希望在提交处理程序中返回
false
。这将导致隐式
e.preventDefault()
,这将阻止表单提交:

if (valid != '') {
    $('form #status').removeClass().addClass('error')
        .html('<strong>Correct these errors<BR></strong>' + valid).fadeIn('fast');
    return false; //stop form submission
    //Or you could do e.preventDefault(); if you're not ready to end the function yet.
}
if(有效!=''){
$('form#status').removeClass().addClass('error'))
.html('更正这些错误
'+有效).fadeIn('fast'); 返回false;//停止表单提交 //如果还没有准备好结束函数,也可以执行e.preventDefault()。 }

这将解决你最紧迫的问题。坚持下去

这一部分没有意义:“现在我想使用jquery输入一些服务器端验证”jquery是客户端…我看不出代码有任何重大错误,尽管如果所有字段都有效,您可能希望将
有效
设置回
'
。存在轻微的逻辑问题。jquery是客户端。。。当我提交并填写所有字段时,它会给出一个错误,消息字段返回了一个错误,因此填写的是有效的。。当所有字段都是emty时,它仍然发送表单数据,但是php返回一个错误,因为我对空字段进行了一些验证检查……他已经停止了提交表单的点击事件。当然,这并不能阻止按enter键提交表单。我如何阻止enter键$('form#submit').bind(“keypress”,function(e){并将其余的代码封装在其中?@r2get检查我答案的第一部分。你想听到的是表单提交事件,而不是点击提交按钮。它工作正常…你很好…现在进入注册表哈哈