0

ページ(フォーム)を送信すると、phpメールへの送信は成功しますが、ページが再びリロードされるという問題に直面しています。trueとfalseを返そうとしましたが、preventDefault()も返されますが、それでもページはリロードされます。

$('#frmRequest').submit(function(e){
    //$('#SUBMIT').click(function(){
    var isValidForm = true;
    $('#RequestDetailsArea').find('input:visible, textarea:visible, select:visible').each(function(){
        if( $(this).val().length == 0|| $(this).val()=='Select' ) {
            $(this).addClass('validation');
            isValidForm = false;      
        }
        else {
            $(this).removeClass('validation'); 
            $('#ErrorRequest').addClass('hidden');           
        }
    });/* end check validation in RequestDetailsArea*/
    if (!isValidForm) {
        $('#ErrorRequest').removeClass('hidden');   
    }
    validreturn=validateForm();
    if(isValidForm && validreturn)
    {
        $('#RequestDetailsArea').find('div:hidden').each(function(){
            //alert($(this).attr('id'));
            $(this).remove();
        });

        msg="ok";
        $.ajax({
            url:"allfields.php",
            type:"POST",
            //      dataType:"json",
            data: $("#frmRequest").serialize(),
            success: function(msg){
                //alert("Form Submitted: "+ msg);
                return msg;

            },
            error: function() {
                alert('Error occured');
            }
        });
        e.preventDefault();

        //return false;
    }
});/* end of submit Function*/
4

1 に答える 1

0

あなたのコードであなたはe.preventDefault();中に入れました

if(isValidForm && validreturn)
{
    //...
    e.preventDefault();
}

したがって、条件が一致しない場合は、メソッドの呼び出しが実行されないため、フォームが送信されると思いますe.preventDefault();。これが事実である場合、あなたはそれをあなたのif状態から遠ざけることができます、すなわち、

$('#frmRequest').submit(function(e){
    e.preventDefault();
    // rest of your code here
});

更新:あなたはあなたの中で使用return msgしていますsuccess、それは何もしません、あなたはこのようにそれをすることができます

success: function(msg){
    returnValue(msg); // call the function      
}

returnValueスクリプトのどこかで次のように宣言します

function returnValue(data)
{
    // do something with data
}
于 2012-09-13T12:43:49.960 に答える