Я пытаюсь написать простой скрипт, который следует приведенной ниже логике, но у меня возникают трудности.
If "Name" field = blank
Then Hide "Comment" field
Else Show "Comment" field
$(document).ready(function() {
if ($('#ContactForm-name').value() == "") {
$('#ContactForm-body').hide();
} else {
$('#ContactForm-body').show();
}
});
<script src = "https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
Кто-нибудь может мне помочь? Я предоставил скриншот формы и ее HTML.
Магазин shopify — https://permaink.myshopify.com/pages/contact с PW магазина = «help».
Взглянув на пример ссылки, которую вы предоставили с паролем «помощь», не похоже, что jQuery действительно загружается на сайт после запуска в консоли следующего: console.info(typeof window.jQuery)
возвращает undefined
.
Возможно, вам придется использовать vanilla JS для достижения того, что вы пытаетесь сделать (или загрузить jQuery, если у вас есть на это разрешения и вам действительно нужно его использовать).
Используя JS без jQuery, вы можете попробовать сделать что-то вроде:
window.addEventListener('load', function() {
if (document.getElementById('ContactForm-name').value === '') {
document.getElementById('ContactForm-body').style.display = 'none';
} else {
document.getElementById('ContactForm-body').style.display = 'block';
}
});
Обратите внимание, что простое скрытие текстового поля ContactForm-body
по-прежнему оставит контур границы и метку Comment
, поэтому вам может потребоваться сделать больше, чем просто скрыть текстовое поле (найдите родителя <div>
в JS и скройте весь блок).
Я реализовал ваш сценарий, но как изменить событие загрузки окна на каждый раз, когда в поле «Имя» вносятся изменения? Ваш код скрывает поле «Комментарий», но оно не появляется снова, когда я ввожу значение в поле «Имя».
@sabah - вам нужно будет привязать прослушиватель событий onchange
к вводу поля «Имя», чтобы при запуске события изменения вы могли проверить, что входное значение не является пустым, а затем снова показать поле комментария. См. некоторые примеры по адресу: stackoverflow.com/questions/574941/….
Вы заметили ошибку консоли? См. api.jquery.com/val.