jquery验证,提交按钮不能在php中工作

时间:2012-06-21 20:20:35

标签: php jquery jquery-validate validation

我点击按钮,没有任何反应。如果我取出验证代码,然后单击按钮工作,它将回退到我已实现的PHP验证。我首先对jquery验证进行了编码,然后就可以了,然后我编写了PHP端。但是在PHP方面没问题之后,jquery验证停止了工作。

有人可以帮忙吗?

我尝试添加

submitHandler: function(form) {
    form.submit();
}
像这样:

submitHandler: function(form) {
    form.submit();
},
rules: {
    ...
}

但什么都没发生。

以下是相关代码,如果有什么不清楚,请告诉我,谢谢!我已经坚持了一段时间了。

if (isset($_POST['submit']))
{
    foreach($_POST as $key=>$value)
    {
        unset($_SESSION[$key]);
        $_SESSION[$key] = $value;
    }
    $errors = validation($job);
    if (count($errors) == 0)
    {
        sendEmail($job);
        sendEmailToApplicant($job);
    }
}

$output = "
<script src='http://code.jquery.com/jquery-latest.js'></script>
<script type='text/javascript' src='http://jzaefferer.github.com/jquery-validation/jquery.validate.js'></script>
<script type='text/javascript'>
jQuery.validator.setDefaults({
    debug: true,
    success: 'valid'
});
jQuery.validator.addMethod('phoneUS', function(phone_number, element) {
    phone_number = phone_number.replace(/\s+/g, ''); 
    return this.optional(element) || phone_number.length > 9 &&
        phone_number.match(/^(1-?)?(\([2-9]\d{2}\)|[2-9]\d{2})-?[2-9]\d{2}-?\d{4}$/);
}, 'Please specify a valid phone number');
</script>
<script>
    $(document).ready(function(){
        $('#applicationForm').validate({
            rules: {
                firstName: {
                    required: true,
                    rangelength: [2, 15]
                },
                lastName: { 
                    required: true,
                    rangelength: [2, 15]
                },
                email: {
                    required: true,
                    email: true
                },
                phone: {
                    required: true,
                    phoneUS: true
                },
                website: {
                    url: true
                }
            }
        });
    });
</script>


<form id='applicationForm' name='applicationForm' method='post' enctype='multipart/form-data'>

            ...

    <input id='submit' type='submit' name='submit' />
</form>";

2 个答案:

答案 0 :(得分:1)

真的很快尝试。不确定这是否是问题,因为我真的看起来不太近,但为什么有jQuery。在某些操作中,如果你没有jquery.noConflict。

尝试将这些更改为只是$这样:

<script>
$(document).ready(function(){
    $('#applicationForm').validate({
        rules: {
            firstName: {
                required: true,
                rangelength: [2, 15]
            },
            lastName: { 
                required: true,
                rangelength: [2, 15]
            },
            email: {
                required: true,
                email: true
            },
            phone: {
                required: true,
                phoneUS: true
            },
            website: {
                url: true
            }
        }
    });

    $.validator.setDefaults({
        debug: true,
        success: 'valid'
    });
    $.validator.addMethod('phoneUS', function(phone_number, element) {
        phone_number = phone_number.replace(/\s+/g, ''); 
        return this.optional(element) || phone_number.length > 9 &&
            phone_number.match(/^(1-?)?(\([2-9]\d{2}\)|[2-9]\d{2})-?[2-9]\d{2}-?\d{4}$/);
    }, 'Please specify a valid phone number');
});

答案 1 :(得分:0)

使用以下代码检查是否已完成发布:

if($_SERVER['REQUEST_METHOD'] == 'POST'){

检查提交按钮的存在是非常不可靠的。