-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 に答える