@Sandwich21

Как отправить HTML-форму без нажатия на клавишу подтверждения?

Я разобрался как без перезагрузки страницы выполнить отправку данных формы при помощи Ajax:
У меня есть несколько файлов:
index.php - это главная страница, на которой размещена сама форма
<form method="post" id="ajax_form" action="" >
        <input type="text" name="name" placeholder="NAME" /><br>
        <input type="text" name="phonenumber" placeholder="YOUR PHONE" /><br>
        <input type="button" id="btn" value="Отправить" />
    </form>

ajax.js - это файл javascript, в котором содержится алгоритм ajax для обработки формы
$( document ).ready(function() {
    $("#btn").click(
		function(){
			sendAjaxForm('result_form', 'ajax_form', 'action_ajax_form.php');
			return false; 
		}
	);
});
 
function sendAjaxForm(result_form, ajax_form, url) {
    $.ajax({
        url:     url, //url страницы (action_ajax_form.php)
        type:     "POST", //метод отправки
        dataType: "html", //формат данных
        data: $("#"+ajax_form).serialize(),  // Сеарилизуем объект
        success: function(response) { //Данные отправлены успешно
        	result = $.parseJSON(response);
        	$('#result_form').html('Имя: '+result.name+'<br>Телефон: '+result.phonenumber);
    	},
    	error: function(response) { // Данные не отправлены
            $('#result_form').html('Ошибка. Данные не отправлены.');
    	}
 	});
}

action_ajax_form.php - это серверная часть, которая отвечает за обработку полученных от формы данных и возвращает клиенту ответ в формате JSON.
if (isset($_POST["name"]) && isset($_POST["phonenumber"]) ) { 

	// Формируем массив для JSON ответа
    $result = array(
    	'name' => $_POST["name"],
    	'phonenumber' => $_POST["phonenumber"]
    ); 

    // Переводим массив в JSON
    echo json_encode($result); 
}

Но мне надо реализовать эту отправку файлов без нажатия на клавишу "Отправить" в форме.
те вместо $("#btn").click(
Должно быть что-то типа window.onload
Но у меня не получается это реализовать.
Вы не могли бы помочь?
  • Вопрос задан
  • 878 просмотров
Пригласить эксперта
Ответы на вопрос 3
Kozack
@Kozack Куратор тега JavaScript
Thinking about a11y
Чтобы вы там себе не придумали, форма должна отправляться только по событию onsubmit. У вас должны быть какие-то железобетонные аргументы, чтобы делать как-то иначе.
Ответ написан
Комментировать
zkrvndm
@zkrvndm
Архитектор решений
Напишите функцию, которая проверяет поле с номером телефона и если оно заполнено правильно, автоматически отсылайте форму. Короче, вам нужен валидатор.
Ответ написан
Комментировать
@yourbatya
Разрабатываю разработки
Как указали выше, форма должна сабмититься по событию onsubmit, но если вы всё же пытаетесь сделать то, что вы там придумали, то попробуйте отправлять форму по событию onkeyup в последнем поле формы. Хотя это и очень странное решение.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы