Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Не очищается поле в input (https://javascript.ru/forum/dom-window/81105-ne-ochishhaetsya-pole-v-input.html)

Igorsrt 01.10.2020 18:53

Не очищается поле в input
 
Здравствуйте.
Столкнулся с такой проблемой: Есть раскрывающийся блок с полем для email (это поле должно быть обязательно заполненным - и по умолчанию оно уже заполнено), когда блок раскрывается - input должен очищаться, если закрывается - должен опять возвращать значение по умолчанию. Код:
<div class="regblock">
	<div id="emailfield" class="form-group input-parent" style="display: none;">
		<input type="email" id="email" name="email" value="user@site.ru">
		<span class="fake-placeholder">Ваш Email (необходим для регистрации) <span>*</span></span>
	</div>
    <div class="agreement form-group input-parent">
		<label for="group" class="form-label grouplabel">
			<input class="form-checkbox form-control dop-section__item-input" type="checkbox" name="group" id="group" value="on">			
			<span class="custom-checkbox"></span>        
			Да, зарегистрировать меня на этом сайте
		</label>        
	</div> 
</div>
<script>
$('.grouplabel').click(function () { 
var chbox=document.getElementById('group');
var email=document.getElementById('email');
	if (chbox.checked) {
	        email.value = '';
		$('#emailfield').slideDown();
	}
	else {
		email.value = 'user2@site.ru';
		$('#emailfield').slideUp();
	}			
});	
</script>

Насколько я вижу (если подставляю в скрипт alert ( email.value; ) ), само значение value меняется, но в поле инпута все остается по старому (т.е. визуально отображается первоначальное значение "user@site.ru").
Подобный код на другом сайте у меня срабатывает как нужно.
В чем может быть подвох?

laimas 01.10.2020 19:20

Цитата:

Сообщение от Igorsrt
поле должно быть обязательно заполненным - и по умолчанию оно уже заполнено

Чьим же мылом оно заполнено если речь идет о регистрации?

Igorsrt 01.10.2020 20:42

это MODX компонент minishop - там обязательно при оформлении заказа указывать e-mail, поэтому если покупатель его не указывает, то мы генерим его сами...

laimas 01.10.2020 20:58

Цитата:

Сообщение от Igorsrt
если покупатель его не указывает, то мы генерим его сами...

Чей, на деревню дедушке?

Igorsrt 01.10.2020 21:03

Цитата:

Сообщение от laimas (Сообщение 529381)
Чей, на деревню дедушке?

да, в minishop создается новый пользователь с несуществующим e-mail (так устроен этот компонент, ничего не поделаешь)... но вопрос был про другое?

laimas 01.10.2020 21:58

Дожили до маразма. Почта для того чтобы ее отправлять, и если она отправляется на адреса выдуманные программно, то рано или поздно домен, от имени которого она отправляется, попадет в черный список и его почта вообще будет заблокирована. Наверное не "формируется", а существующий либо администратора или ...?

А насчет скрипта, в чем проблема, почему вы решили, что не изменяется значение при вводе? Смотрите на html-код в отладчике? Так в нем ничего и не произойдет.

Igorsrt 01.10.2020 22:02

Цитата:

Сообщение от laimas (Сообщение 529386)
А насчет скрипта, в чем проблема, почему вы решили, что не изменяется значение при вводе? Смотрите на html-код в отладчике? Так в нем ничего и не произойдет.

В том-то и дело, что само значение value в инпуте изменяется, но визуально на странице в поле input отображается старое значение - а это не красиво

laimas 01.10.2020 22:08

<html>
<head>
<meta charset="utf-8">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>
</head>
<body>
<div class="regblock">
	<div id="emailfield" class="form-group input-parent" style="display: none;">
		<input type="email" id="email" name="email" value="user@site.ru">
		<span class="fake-placeholder">Ваш Email (необходим для регистрации) <span>*</span></span>
	</div>
    <div class="agreement form-group input-parent">
		<label for="group" class="form-label grouplabel">
			<input class="form-checkbox form-control dop-section__item-input" type="checkbox" name="group" id="group" value="on">			
			<span class="custom-checkbox"></span>        
			Да, зарегистрировать меня на этом сайте
		</label>        
	</div> 
</div>
<button>GO</button>
<script>
$('.grouplabel').click(function () { 
var chbox=document.getElementById('group');
var email=document.getElementById('email');
	if (chbox.checked) {
	        email.value = '';
		$('#emailfield').slideDown();
	}
	else {
		email.value = 'user2@site.ru';
		$('#emailfield').slideUp();
	}			
});
$('button').click(function() {
    alert(email.value)
})	
</script>
</body>
</html>


Отметить флажок, ввести значение, в чем "визуальная проблема"? Нажать кнопку. Где и какие проблемы?

voraa 01.10.2020 22:11

Всякие классы form-group, input-parent, fake-placeholder... - это ваши или minishop? Если там какой то феймворк, то хрен его знает, как это работает у них. Тут надо в отладчике именно html кода смотреть, где какие тексты вставлены.

laimas 01.10.2020 22:14

voraa, бьюсь об заклад, что он все-таки путает атрибут со свойством. )


Часовой пояс GMT +3, время: 20:20.