0

フォーム送信ボタンに複数のアクションを実行させることが可能かどうか疑問に思っています。現在、AJAX を使用して Google スプレッドシートに送信されるカスタム フォームを使用しています。Blueimp Jquery File Upload プラグインも使用しています。私が望んでいるのは、onsubmit ですべての関連情報を Google スプレッドシートに送信し、アップロードされた画像をサーバーに送信できることです。私は、Blueimp Jquery Upload を含まない潜在的なソリューションに対してオープンであり、Google スプレッドシートを使用して、複数の共同作業者がデータにアクセスできるようにしています。

ファイルのアップロードに精通していないため、詳細が省略されていることをお詫びしますが、質問してください。関連するすべての情報を提示するために最善を尽くします.

Google スプレッドシート送信コード:

// Handle form submission
$('form').submit(function(e) {
    var button = $('input[type=submit]', this),
        data = $(this).serialize();`

    e.preventDefault();
    if (validate($(this))) {
        button.button('loading');
        $.ajax({
            type: 'POST',
            url: formUrl,
            data: data,
            complete: function() {
                button.button('reset');
                window.location = 'index.html#new';
            }
        });
    }

    function validate(form) {
        $('.control-group').removeClass('error');
        $('input, textarea', form).each(function() {
            var tag = $(this)[0].tagName.toLowerCase(),
                type = $(this).attr('type');

            // Validate radio buttons
            if (tag === 'input' && type === 'radio') {
                var name = $(this).attr('name');
                if ($('[name="' + name + '"]:checked').length < 1) {
                    $(this).parent().parent().parent().addClass('error');
                }
            }

            // Validate text fields
            if ((tag === 'input' && type === 'text') || tag === 'textarea') {
                if ($(this).val() === '' && !$(this).parent().hasClass('radio')) {
                    $(this).parent().parent().addClass('error');
                }
            }
        });

        if ($('.control-group.error').length < 1) return true;
        $('.control-group.error').length

        $('html, body').animate({
            scrollTop: $('.control-group.error').offset().top - 20
        }, 500);

        return false;
    }
});
4

1 に答える 1

1

フォーム送信ボタン(またはその他の入力)がある場合:

<button href="#" id="formButton" type="button">Submit</button>

JavaScriptを使用して、ボタンにクリックイベントを作成し、フォームを送信します。

$('#formButton').click(submitMultipleForms());

次に、関数でフォームを送信できます。各フォームにはIDが必要です。

function submitMultipleForms() {
       $("#form1").submit(function() { //Handler for form1 
                                     });
       $("#form2").submit(function() { //Handler for form2
                                     });
}
于 2012-11-30T11:20:44.510 に答える