1

私は登録フォームを作成し、フォームを検証するために ajax を使用しました。私の問題は $form.submit(function(){.....}); です。問題を説明します。以下に ajax のコードを示します。

$(document).ready(function()
    {
        var $form=$('#myform');
        //debugger;
        $form.submit(function()
        {
            $.ajax({
                type:'POST',
                url:'registrationvalidation.php',
                data:$("#myform").serialize(),
                success:function(data)
                {
                    alert(data);
                    if(data=="ok")
                        {
                           return true;
                        }
                        else
                        {
                            alert(data);
                            return false;
                        }
                }
            });
        });
    });

送信はライブ関数に置き換えられ、必要に応じて機能しています。これは作業コードです。

$(document).ready(function()
    {
        //var $form=$('#myform');

        //debugger;
        //$form.submit(function()
        $("#submit").live('click',function()
        {
            $.ajax({
                type:'POST',
                url:'registrationvalidation.php',
                data:$("#myform").serialize(),
                success:function(data)
                {
                    alert(data);
                    if(data=="ok")
                        {
                           return true;
                        }
                        else
                        {
                            alert(data);
                            return false;
                        }
                }
            });
        });
    });

しかし、私のプログラムでは、送信後にhtmlフォームから別のページにデータを投稿しているため、送信機能を使用したいと考えています。また、クロム開発者ツールを使用して同じコード(最初のコード)を実行しているときは、正常に動作しています。ソリューション.. HTML フォーム

<form id="myform" action="insert.php" method="post" >
        <h1>Personal Information</h1>
        <fieldset id="personal">
            <input id="firstname" name="firstname" type="text" placeholder="FIRST NAME" autofocus><br>
            <input id="lastname" name="lastname" type="text" placeholder="LAST NAME"><br>
            <input id="gender" name="gender" type="text" placeholder="GENDER" ><br>
            <input id="email" name="email" type="email" placeholder="EMAIL"><br>
            <input id="date" name="date" type="date" placeholder="JOINING DATE" ><br>
            <input id="designation" name="designation" type="text" placeholder="DESIGNATION"><br>
        </fieldset>
        <h1>Login Info</h1>
        <fieldset id="logininfo">
            <input id="username" name="username" type="text" placeholder="USER NAME" ><br>
            <input id="password1" name="password1" type="password" placeholder="PASSWORD" ><br>
            <input id="password2" name="password2" type="password" placeholder="CONFORM PASSWORD" ><br>
        </fieldset>
        <h1>Permissions</h1>
        <fieldset id="permission" align="center">
            View&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:<input id = "VIEW" name="view" type = "checkbox" value = "view" /> <br>
            Edit&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:<input id = "EDIT"name="edit" type = "checkbox" value = "edit" /> <br>
            Delete&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:<input id = "DELETE"name="delete" type = "checkbox" value = "delete" /> <br>
            Permission&nbsp;&nbsp;:<input id = "PERMISSION" name="permission"type = "checkbox" value = "perms" /> <br>
            Add User&nbsp;&nbsp;&nbsp;:<input id = "ADD" name="add" type = "checkbox" value = "add" /> <br>
        </fieldset>
        <fieldset id="actions">
            <input type="button" id="submit" value="SUBMIT" />
            <!--<input type="submit" id="submit" value="SUBMIT" />this is for submit function-->
            <div id="idd"></div>
        </fieldset>
    </form>

前もって感謝します..

4

1 に答える 1

1

フォームの送信をキャンセルし、AJAX が成功したときに手動で送信する必要があります。

var oForm = $('#myform');
oForm.submit(function()
{
    $.ajax({
        type:'POST',
        url:'registrationvalidation.php',
        data: oForm.serialize(),
        success:function(data)
        {
            alert(data);
            if(data=="ok")
            {
                oForm[0].submit();
            }
            else
            {
                alert(data);
            }
        }
    });
    return false;
});

AJAX コールバックで「return false」を使用しても意味がありません。フォームの送信にはまったく影響しません。

于 2012-12-18T08:30:02.177 に答える