【问题标题】:jquery validation, submit button not working in phpjquery验证,提交按钮在php中不起作用
【发布时间】:2012-06-21 20:20:34
【问题描述】:

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

【问题讨论】:

    标签: php jquery jquery-validate validation


    【解决方案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');
    });
    

    【讨论】:

    • 这是完美的谢谢。我想我自己不会意识到这一点。
    【解决方案2】:

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

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

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

    【讨论】:

    • 但它似乎根本没有调用验证,页面不应该刷新以便 jquery 验证运行正确?
    猜你喜欢
    • 2018-02-14
    • 2011-09-12
    • 2014-07-03
    • 1970-01-01
    • 1970-01-01
    • 2019-06-06
    • 2018-03-09
    • 1970-01-01
    • 2019-07-15
    相关资源
    最近更新 更多