0

通常の入力タイプではなく、ハイパーリンク (href) から JavaScript と AJAX を使用して HTML フォームを送信する際に問題があります。私の現在のコードは次のとおりです。

Javascript (ボディタグの直前に実行):

$(document).ready(function () {

        //Chronicle Form 1
        $('#fm_chronicledate').submit(function(event) {
            var data = $('#fm_chronicledate').serialize() + 'cron=1' + '&chron_date=' + chron_date.val() + '&chron_time=' + chron_time.val();
                $.ajax({
                    type: "GET",
                    url: "script.php",
                    data: data, 
                    cache: false,
                    success: function(html) {
                        if(html == 1){
                        $('#chron_part1').fadeOut('slow');
                        } else alert('Error');
                    }
                });
            return false;
        });
});

HTML:

<form id="fm_chronicledate" method="POST" action="#" >
<input type="text" class="website" name="chron_time" id="chron_time" />
<input type="text" class="website" name="chron_date" id="chron_date" />
<a href="#" class="chron_submit1" id="chron_submit1" onclick="fm_chronicledate.submit(); return false;">Submit</a>
</form>

とにかく、何らかの理由でAJAXを実行しません。

どんな助けでも大歓迎です。ありがとうございました。

4

3 に答える 3

3

インライン JavaScript を使用するのではなく、メイン スクリプトでリンクを参照し、次のようにクリック イベントをキャプチャできます...

HTML:

<form id="fm_chronicledate" method="POST" action="#" >
    <input type="text" class="website" name="chron_time" id="chron_time" />
    <input type="text" class="website" name="chron_date" id="chron_date" />
    <a href="#" class="chron_submit1" id="chron_submit1">Submit</a>
</form>

Javascript

$(document).ready(function () {
    $('#chron_submit1').on("click", function(event) {
        var data = $('#fm_chronicledate').serialize() +
            'cron=1' +
            '&chron_date=' + $("#chron_date").val() +
            '&chron_time=' + $("#chron_time").val();
        $.ajax({
            type: "GET",
            url: "script.php",
            data: data, 
            cache: false,
            success: function(html) {
                if (html == 1) {
                    $('#chron_part1').fadeOut('slow');
                }
                else
                    alert('Error');
            }
        });
    });
});
于 2013-09-05T13:12:41.070 に答える
1

やってみませんか:

<a href="#" class="chron_submit1" id="chron_submit1" onclick="Javascript:GetAjax()">Submit</a>

$(document).ready(function () {
    function GetAjax() {
        var data = $('#fm_chronicledate').serialize() + 'cron=1' + '&chron_date=' + chron_date.val() + '&chron_time=' + chron_time.val();
            $.ajax({
                type: "GET",
                url: "script.php",
                data: data, 
                cache: false,
                success: function(html) {
                    if(html == 1){
                    $('#chron_part1').fadeOut('slow');
                    } else alert('Error');
                }
            });
        return false;
    }
});
于 2013-09-05T13:11:23.650 に答える
0

まず、リンクから onclick を削除し、次のように変更します。

<form id="fm_chronicledate" method="POST" action="#" >
<input type="text" class="website" name="chron_time" id="chron_time" />
<input type="text" class="website" name="chron_date" id="chron_date" />
<a href="javascript:void(0)" class="chron_submit1" id="chron_submit1">Submit</a>
</form>

あなたのイベントを次のように変更します

$('#chron_submit1').click(関数(イベント) {

また、フォームをシリアル化するときにエラーが発生します。でなければなりません

var data = $('#fm_chronicledate').serialize() + 'cron=1' + '&chron_date=' + $(chron_date).val() + '&chron_time=' + $(chron_time).val();

于 2013-09-05T13:14:37.537 に答える