Я написал сценарий jQuery, который проверяет событие изменения в поле ввода файла, когда выбран файл, необходимо отправить функцию отправки формы и отправить данные через Ajax.
Проблема: функция смены файла запускается, но функция отправки не запускается. На консоли нет никаких ошибок.
Сценарий, который я написал:
$(document).ready(function() {
$("#upld").on('change', function() {
console.log('going to run submit function');
$('#fff').submit(function(e) {
console.log('submitting function executed')
var siteSettings = {"ajaxurl": '/filer/check/wp-admin/admin-ajax.php'};
var data = {
action: 'uploading-new-image',
files: $(this).serialize()
};
jQuery.post(
siteSettings.ajaxurl,
data,
function(response) {
$("#error").html(response);
});
e.preventDefault();
});
});
});
Вот HTML:
<form id="fff" method="POST" action="process.php" enctype="multipart/form-data">
<input type="file" name="filetoupload" id="upld" />
</form>
Вы не запускаете его. Вы просто добавляете обработчик для обработчика отправки.
Добавьте в .submit()
или .trigger('submit')
.
$(document).ready(function () {
$("#upld").on('change', function () {
console.log('going to run submit function');
$('#fff').submit(function (e) {
console.log('submitting function executed')
var siteSettings = {
"ajaxurl": '/filer/check/wp-admin/admin-ajax.php'
};
var data = {
action: 'uploading-new-image',
files: $(this).serialize()
};
jQuery.post(
siteSettings.ajaxurl,
data,
function (response) {
$("#error").html(response);
});
e.preventDefault();
}).submit(); // <-------- Added submit here.
});
});