@Ysery

Аналог jquery на наличие cookies, создание cookies, если вписано в input, как?

Доброго времени суток.

Идёт считывание - если есть куки, то вписываем его значение в input
var author = readCookie('commenter_author');
if(author) jQuery('input[name="author"]').val(author);


Если в input что-то есть на момент срабатывания, то создаём куки с этим значением.
if(jQuery('input[name="author"]').length) createCookie('commenter_author', jQuery('input[name="author"]').val(), 365);


Как эти две команды будут выглядеть на чистом JS?

Если что, то вот так выглядит весь код:

<script>
	function createCookie(name, value, days) {
		if(days) {
			var date = new Date();
			date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000));
			var expires = "; expires=" + date.toGMTString();
		} else var expires = "";
		document.cookie = name + "=" + value + expires + "; path=/";
	}

	function readCookie(name) {
		var nameEQ = name + "=";
		var ca = document.cookie.split(';');
		for(var i = 0; i < ca.length; i++) {
			var c = ca[i];
			while(c.charAt(0) == ' ') c = c.substring(1, c.length);
			if(c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length, c.length);
		}
		return null;
	}

	document.addEventListener("DOMContentLoaded", function() {
		var author = readCookie('commenter_author');
		var email = readCookie('commenter_email');
		if(author) jQuery('input[name="author"]').val(author);
		if(email) jQuery('input[name="email"]').val(email);
		document.getElementById('commentform').addEventListener('submit', function(){
			if(jQuery('input[name="author"]').length) createCookie('commenter_author', jQuery('input[name="author"]').val(), 365);
			if(jQuery('input[name="email"]').length) createCookie('commenter_email', jQuery('input[name="email"]').val(), 365);
		});

	})
	</script>

<form action="h" method="post" id="commentform" class="comment-form">
								<p class="comment-notes"><span id="email-notes">Ваш e-mail не будет опубликован.</span> Обязательные поля помечены <span class="required">*</span></p>
								<p class="comment-form-author">
									<label for="author">Имя <span class="required">*</span></label>
									<input id="author" name="author" type="text" value="" size="30" maxlength="245" required="required">
								</p>
								<p class="comment-form-email">
									<label for="email">E-mail <span class="required">*</span></label>
									<input id="email" name="email" type="text" value="" size="30" maxlength="100" aria-describedby="email-notes" required="required">
								</p>
								<p class="comment-form-comment">
									<label for="comment">Комментарий</label>
									<textarea id="comment" name="comment" cols="45" rows="8" maxlength="65525" required="required"></textarea>
								</p>
								<p class="form-submit">
									<input name="submit" type="submit" id="submit" class="submit" value="Отправить комментарий">
								</p>
							</form>
  • Вопрос задан
  • 63 просмотра
Решения вопроса 1
delphinpro
@delphinpro Куратор тега JavaScript
frontend developer
let author = readCookie('commenter_author');
let input = document.querySelector('input[name="author"]');
if(author && input) input.value = author;

let input = document.querySelector('input[name="author"]');
if(input) createCookie('commenter_author', input.value, 365);
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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