Я пытаюсь сделать простой создатель поста с заголовком, и я хочу, чтобы "post-btn" был отключен, а его курсор был изменен на "не разрешен", если один из входов (заголовок, текст) ) пусто (value.length === 0;
), я написал функцию, используя forEach
и eventListener
, но на самом деле это не сработало, я думаю о другом способе, добавив eventListener
для обоих входов, но я не мог представить себе какой-либо короткий способ сделать это, не написав много if
заявлений. Поэтому я решил обратиться за помощью, если вы можете исправить ошибки, которые я здесь сделал, или помочь мне с новым эффективным и понятным кодом. Чтобы прояснить ситуацию, я бы сказал: если заголовок пуст, кнопки также отключаются, а если текст пуст, кнопки также отключаются, если ни одна из них не пуста, кнопки становятся активными.
let createPostBehavior = function(){
let inputs = document.querySelectorAll('.post-input');
let postBtn = document.querySelector('.post-btn');
inputs.forEach(function(inp){
inp.addEventListener('input', function(e){
if(e.target.value.length === 0) {
postBtn.disabled = true;
postBtn.style.cursor = 'not-allowed';
} else if (e.target.value.length > 0) {
postBtn.disabled = false;
postBtn.style.cursor = 'pointer';
}
})
})
}
createPostBehavior();
<div class="create-post-wrapper">
<div>
<p class="sub-headline">Create a new post</p>
</div>
<div>
<input class="post-input" type="text" placeholder="Title">
</div>
<textarea id="input" class="post-input"></textarea>
<div class="buttons-wrapper">
<button class="post-btn">Post</button>
</div>
</div>