Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / document.getElementById() / 12 сообщений из 12, страница 1 из 1
08.06.2016, 14:16
    #39252810
vdekameron
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
document.getElementById()
Добрый день! Подскажите пожалуйста почему этот метод выводит инфу в тег <p> и моментально эта инфа исчезает.
Код: html
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
<!DOCTYPE HTML>
<html>
<head>
	<title>Дата и время дз</title>
	<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<body>
	<form name="myform" action="#" method="post" onsubmit="checkForm(this)">
		<input id ="form" type="text" name="date" placeholder="ДД.MM.ГГГГ"><br>
		<input type="submit" name="datesend" value="Посчитать">
	</form>
	<p id="answer"></p>
	<script type="text/javascript">
		function getMyFormatDate(date){
			var year = date.getFullYear();
			var month = date.getMonth() + 1;
			var date = date.getDate();
			if (date < 10) date = "0" + date;
			if (month < 10) month = "0" + month;
			return date + "." + month + "." + year;
		}
		function checkForm(info){
			// Проверяем правильно в нужном ли формате ввели дату
			var birth = info.date.value;
			var d = birth.match(/^[0-9]{2}\.[0-9]{2}\.[0-9]{4}$/i);
			// Считываем дату рождения
			var day = Number(birth.match(/[0-9]{2}/));
			// Считываем месяц рождения
			var month = Number(birth.match(/[0-9]{2}(?=\.[0-9]{4})/));
			// Считываем год рождения
			var year = Number(birth.match(/[0-9]{4}$/));
			if (!d) {
				alert("Неправильно введена дата. Смотрите пример ввода.");
			}
			var birthdayDate = new Date(year, month - 1, day);
			var realDate  = new Date()
			document.getElementById("answer").innerHTML = "C момента рождения до сегодняшнего дня прошло " + Math.floor((realDate - birthdayDate)/1000) + " секунд.";
		}
		var date = new Date();
	</script>
</body>
</html>
...
Рейтинг: 0 / 0
08.06.2016, 14:26
    #39252829
DarkMaster
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
document.getElementById()
vdekameron,

Ты форму на нее же сабмитишь.

Рисуешь форму
Жмешь кнопку
Отработал скрипт (появился текст)
Сабмит -> Рефреш формы и все по новой ;)

Вместо сабмита повесь на кнопку OnClick и будет тебе щастье.
...
Рейтинг: 0 / 0
08.06.2016, 14:28
    #39252831
Areostar
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
document.getElementById()
пологаю потому что форма перезагружает страницу! сделайте вместо формы див и в кнопке пропишите оnClick

или чтото подобное. Форма тут вообще не нужна. И да кнопку переделайте с сабмит на батн
...
Рейтинг: 0 / 0
08.06.2016, 14:50
    #39252872
vdekameron
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
document.getElementById()
DarkMaster,

Учел замечания....понял сам почему. Переделал, но почему то не считываются данные с <input type="text">
Код: html
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
<!DOCTYPE HTML>
<html>
<head>
	<title>Дата и время дз</title>
	<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<body>
	<div>
		<input id="check" type="text" name="date" placeholder="ДД.MM.ГГГГ"><br>
		<input type="button" name="datesend" value="Посчитать" onclick="checkForm()">
	</div>
	<p id="answer"></p>
	<script type="text/javascript">
		function getMyFormatDate(date){
			var year = date.getFullYear();
			var month = date.getMonth() + 1;
			var date = date.getDate();
			if (date < 10) date = "0" + date;
			if (month < 10) month = "0" + month;
			return date + "." + month + "." + year;
		}
		function checkForm(){
			var birth = document.getElementById("check").innerHTML;
			// Проверяем правильно в нужном ли формате ввели дату
			var d = birth.match(/^[0-9]{2}\.[0-9]{2}\.[0-9]{4}$/i);
			// Считываем дату рождения
			var day = Number(birth.match(/[0-9]{2}/));
			// Считываем месяц рождения
			var month = Number(birth.match(/[0-9]{2}(?=\.[0-9]{4})/));
			// Считываем год рождения
			var year = Number(birth.match(/[0-9]{4}$/));
			if (!d) {
				alert("Неправильно введена дата. Смотрите пример ввода.");
				return false;
			}
			var birthdayDate = new Date(year, month - 1, day);
			var realDate  = new Date()
			alert("C момента рождения до сегодняшнего дня прошло " + Math.floor((realDate - birthdayDate)/1000) + " секунд.\nC момента рождения до сегодняшнего дня прошло " + Math.floor((realDate - birthdayDate)/60000) + " минут.\nC момента рождения до сегодняшнего дня прошло " + Math.floor((realDate - birthdayDate)/3600000) + " часов.\nC момента рождения до сегодняшнего дня прошло " + Math.floor((realDate - birthdayDate)/86400000) + " дней.\nC момента рождения до сегодняшнего дня прошло " + Math.floor((realDate - birthdayDate)/31536000000) + " лет.\n");
		}
		var date = new Date();
	</script>
</body>
</html>
...
Рейтинг: 0 / 0
08.06.2016, 14:51
    #39252875
vdekameron
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
document.getElementById()
vdekameron,

переменная birth пустая
...
Рейтинг: 0 / 0
08.06.2016, 15:16
    #39252917
DarkMaster
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
document.getElementById()
vdekameron,

Код: javascript
1.
var birth = document.getElementById("check").value
...
Рейтинг: 0 / 0
08.06.2016, 15:23
    #39252933
Areostar
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
document.getElementById()
Подключите jQuery. с ним удобнее.
...
Рейтинг: 0 / 0
08.06.2016, 15:26
    #39252942
vdekameron
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
document.getElementById()
AreostarПодключите jQuery. с ним удобнее.
Я учусь. Хочу знать хоть азы JavaScript. Думаю это не помешает.
...
Рейтинг: 0 / 0
08.06.2016, 15:28
    #39252948
vdekameron
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
document.getElementById()
DarkMaster,

Я понял. innerHTML берет html данные у блочных элементов. У строчных нужно брать значение. Спасибо!
...
Рейтинг: 0 / 0
08.06.2016, 15:54
    #39252971
document.getElementById()
vdekameron,

посмотрите ещё textContent
...
Рейтинг: 0 / 0
09.06.2016, 09:02
    #39253287
бухалтер фантоцци
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
document.getElementById()
vdekameronDarkMaster,

Я понял. innerHTML берет html данные у блочных элементов. У строчных нужно брать значение. Спасибо!не правильно,
строчные элементы тоже могут содержать HTML-код, который доступен через .innerHTML
у текстового поля ввода input свойство .innerHTML имеет тип string всегда с нулевой длиной, но есть свойтво .value
...
Рейтинг: 0 / 0
09.06.2016, 09:28
    #39253299
vdekameron
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
document.getElementById()
бухалтер фантоццине правильно,
строчные элементы тоже могут содержать HTML-код, который доступен через .innerHTML
у текстового поля ввода input свойство .innerHTML имеет тип string всегда с нулевой длиной, но есть свойтво .value
Спасибо, понял
...
Рейтинг: 0 / 0
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / document.getElementById() / 12 сообщений из 12, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]