1

フォームの最後に、次のようなラベルが付いた送信ボタンがあります。

<button id="sendbutton" style="margin-left:25px;" class="btn btn-large btn-primary" type="submit">Send Responses</button>

このボタンは次のスクリプトを呼び出します。

<script type="text/javascript">
        $(function() {
            $('form').unbind('submit').bind('submit', function(){
                $.ajax({
                    type: 'post',
                    url: 'chapter.php',
                    data: $("form").serialize(),
                    success: function() {
                        alert('Your answers have been saved.');
                    }
                });
                return false;
            });
        });

    </script>

このフォーム構造の外に同じ関数を呼び出すボタンを作成するにはどうすればよいですか?

4

3 に答える 3

1

クリック ハンドラーを新しいボタンに記述し、ハンドラーでスクリプトを使用してフォーム送信をトリガーすることができます

<button id="test" style="margin-left:25px;" class="btn btn-large btn-primary" type="button">Send Responses</button>

それから

jQuery(function($){
    $('#test').click(function(){
        $('form').submit()
    })
})
于 2013-10-03T03:23:52.877 に答える
1

フォームの外側であっても、好きなボタンを作成できます。そして、そのボタンに同じことをさせるには、単純に行うことができます

$('#yourNewButton').click(function(){
    $('form').submit();
});

または、元のロジックを独自の関数にラップしてみませんか

function submitMyForm(){
    $.ajax({
        type: 'post',
        url: 'chapter.php',
        data: $("form").serialize(),
        success: function() {
            alert('Your answers have been saved.');
        }
    });
    return false;
 }

その後

$('#yourNewButton').click(submitMyForm);
$('form').submit(submitMyForm);
于 2013-10-03T03:23:59.100 に答える
0

送信ハンドラーを匿名関数にするのではなく、名前付き関数にします

function submitHandler() {
    $.ajax({
        type: 'post',
        url: 'chapter.php',
        data: $("form").serialize(),
        success: function () {
            alert('Your answers have been saved.');
        }
    });
    return false;
}

次に、コードを次のように変更します

$('form').unbind('submit').bind('submit', submitHandler);

そうすれば、いつでも簡単にその関数を呼び出すことができます。submitHandler();

于 2013-10-03T03:25:09.593 に答える