-2

我单击按钮,没有任何反应。如果我取出验证代码,则单击该按钮可以工作,它会退回到我已实现的 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>";
4

2 回答 2

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');
});

于 2012-06-21T20:32:21.450 回答
0

使用以下代码检查是否已发布帖子:

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

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

于 2012-06-21T20:26:11.520 回答