フォーム送信ボタンに複数のアクションを実行させることが可能かどうか疑問に思っています。現在、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;
}
});