0

formAIDを持つ 2 つのフォームがありcomments、AJAX 経由で送信したいと考えています。しかし、ifand elsehere はフォームをチェックしません。私はいつも警戒していhello3ます。

JS:

function submitformbyajax() {
    var currentForm = $(this);
    if (currentForm.attr("id") == 'formA') {
        $.ajax({
            type: 'post',
            url: 'commentformhandler.php',
            data: $("form").serialize(),
            success: function() {
                $("#refresh").load("commentform.php #refresh");
            }
        });
    } else if (currentForm.attr("id") == 'comments') {}
    alert("hello3");
    return false;
}

関数はによって呼び出されます

    <div>
    <form name="formA" id="formA" action="" method="" onsubmit="return     submitformbyajax();">
        <textarea name="comment" id="commentform" style="width:90%; height:45px;"></textarea>
        <input type="submit" name="submit" value="submit" id="submitbtn" />
        <input type="hidden" name="onid" value="2" id="submitbtn"/>
    </form>
</div>

ここに完全なデモページがあります....

<?php

?>
<html>
<head>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.1/jquery.min.js">   </script>
<script>
    function submitformbyajax (){
var currentForm = $(this);
  if (currentForm.attr("id") == 'formA' ) {
        $.ajax({type: 'post',
                url: 'commentformhandler.php',
                data: $("form").serialize(),
                success: function(){
                $("#refresh").load("commentform.php #refresh");
                alert ("hello1");
                }
        } );
}
else if  (currentForm.attr("id") == 'comments') {
        alert("hello2");
    }
    alert ("hello3");
    return false;
}
</script>
    <title>
        comment forms..
    </title>
</head>
<body>
<div>
    <form name="formA" id="formA" action="" method="" onsubmit="return submitformbyajax();">
        <textarea name="comment" id="commentform" style="width:90%; height:45px;"></textarea>
        <input type="submit" name="submit" value="submit" id="submitbtn" />
        <input type="hidden" name="onid" value="2" id="submitbtn"/>
    </form>
</div>
<div id="refresh">
    <?php
        include_once('databaseconnection.php');
        $selectdata=mysql_query("select * from `fetwork_view` ");
        while($selectedinarray=mysql_fetch_array($selectdata)){ ?>
            <table>
                <tr>
                    <td>
                        <?=$selectedinarray['view']?>
                    </td>
                </tr>
                <tr>
                    <td>
        <form name="comment" id="comments" action="" method="">
        <textarea name="comment" id="commentform" style="width:70%; height:25px;"></textarea>
        <input type="submit" name="submit" value="submit" id="submitbtn" />
        <input type="hidden" name="onid" value="2" id="submitbtn"/>
        </form>
                    </td>
                </tr>
            </table>

    <?php } ?>
</div>
</body>
</html>
4

2 に答える 2

0

使うべきだと思います

$("form#formA").submit(function(){
  alert(1);
});
于 2013-07-23T17:07:58.137 に答える
0

alert(...)によってテストされた条件に関係なく、ステートメントが実行されますif。直後 に 実行if

ajaxコードの「フロー」をリダイレクトしないことに注意してください。ブラウザは AJAX リクエストを「起動」して続行します。次に、サーバーからの応答が受信された後、AJAX コールバック関数が実行されます。

アップデート:

フォームをsubmitformbyajax関数 addthisに引数として「渡す」には:

<form name="formA" id="formA" onsubmit="submitformbyajax(this);">

JS:

function submitformbyajax(your_form) {
    var currentForm = $(your_form);
于 2013-07-23T17:10:15.737 に答える