@Tigronix

Не понятнная ошибка: «TypeError: 'stepUp' called on an object that does not implement interface HTMLInputElement»?

При отправке формы, вылазит ошибка: "TypeError: 'stepUp' called on an object that does not implement interface HTMLInputElement". Перепроверил свой код уже раз 100.
ПРИ ТОМ, что код просто идентичный первая форма отправляет на почту, выдаёт месаджи о успехе или фейле отправки. В общем первая работает, как нужно - остальные выдают ту самую ошибку.

HTML:
<div class="form">
					<div class="form">
						<input id="name" placeholder="Введите Ваш e-mail" type="text">
						<div onclick="sendMail2(this)" class="button">оплатить и скачать</div>
						<div id="success-message">Подписка оформлена!</div>
						<div id="fail-message">Введите E-mail</div>
					</div>

			<div class="form">
				<input id="name3" placeholder="Введите Ваш e-mail" type="text">
				<div onclick="sendMail3(this)" class="button">оплатить и скачать</div>
				<div id="success-message2">Подписка оформлена!</div>
				<div id="fail-message2">Введите E-mail</div>
			</div>

					<div class="form">
						<input placeholder="Введите Ваш e-mail" type="text"  id="name4">
						<div onclick="sendMail4(this)" class="button">оплатить и скачать</div>
						<div id="success-message4">Подписка оформлена!</div>
						<div id="fail-message4">Введите E-mail</div>
					</div>


<?php
//Отправляем мыло
function sendMail($title,$text) {
	$mail="vditold@yandex.com";
	$str = '
	<html>
	<head>
	  <title></title>
	</head>
	<body>'.$text.'</body>
	</html>';
	
	$to = $mail;//
	
	$headers  = 'MIME-Version: 1.0' . "\r\n";
	$headers .= 'Content-type: text/html; charset=utf-8' . "\r\n";
	// Дополнительные заголовки
	//$headers .= 'To: Mary <mary@example.com>, Kelly <kelly@example.com>' . "\r\n";
	$headers .= 'From: '.$to . "\r\n";
	//$headers .= 'Cc: '.$_POST['inp0'].'' . "\r\n";
	//$headers .= 'Bcc: birthdaycheck@example.com' . "\r\n";

	// Отправляем
	mail($to, $title, $str, $headers);
}


if ($_POST['mode'] == 'sendmail2'){
	if (!empty($_POST['name'])){
		$title = 'Title';
		$text .= '<b>Name: </b>'.$_POST['name'].'<br />';
		sendMail($title, $text);
		echo '1';
	}else{
		echo '0';
	}
}

if ($_POST['mode'] == 'sendmail3'){
	if (!empty($_POST['name3'])){
		$title = 'Title';
		$text .= '<b>Name: </b>'.$_POST['name3'].'<br />';
		sendMail($title, $text);
		echo '1';
	}else{
		echo '0';
	}
}

if ($_POST['mode'] == 'sendmail4'){
	if (!empty($_POST['name4'])){
		$title = 'Title';
		$text .= '<b>Name: </b>'.$_POST['name4'].'<br />';
		sendMail($title, $text);
		echo '1';
	}else{
		echo '0';
	}
}

	
?>


function sendMail2(){
	var name = $('#name').val();

	$.post ('post.php', {mode: 'sendmail2', name:name}, onAjaxSuccess);
	function onAjaxSuccess(data) {
	if (data == 0){
		$('#fail-message').show();
		$('#success-message').hide();
	}else{
		$('#success-message').show();
		$('#fail-message').hide();
		}
	}
}


function sendMail3(){
	var name = $('#name3').val();

	$.post ('post.php', {mode: 'sendmail3', name3:name3}, onAjaxSuccess);
	function onAjaxSuccess(data) {
	if (data == 0){
		$('#fail-message2').show();
		$('#success-message2').hide();
	}else{
		$('#success-message2').show();
		$('#fail-message2').hide();
		}
	}
}

function sendMail4(){
	var name = $('#name4').val();

	$.post ('post.php', {mode: 'sendmail4', name4:name4}, onAjaxSuccess);
	function onAjaxSuccess(data) {
	if (data == 0){
		$('#fail-message4').show();
		$('#success-message4').hide();
	}else{
		$('#success-message4').show();
		$('#fail-message4').hide();
		}
	}
}
  • Вопрос задан
  • 2354 просмотра
Решения вопроса 1
@Wol_fi
php, js, mysql, highload
У вас HTML битый, не хватает закрывающего тега </div> в конце.
А сама ошибка, подразумевает, что вы пытаетесь вызвать метод stepUp у объекта, который не реализует интерфейс HTMLInputElement. Скорее всего, это из-за того, что не находится нужный элемент. У вас ошибки в функции sendMail3 и sendMail4. Вы объявляете переменную name, а в объект отправляете name3 и name4. Вместо них там будет undefined. Исправьте на name3:name и name4:name или var name%тут подставьте номер%. Ещё у вас вызов sendMail%numb% идёт с параметром, а декларация - без параметра. Не критично конечно, но лучше убрать. Ну и про копипаст не успоминаю, так как вам, оно походу не нужно.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы