Чтобы сделать это, вам нужно использовать jQuery методы обхода DOM, чтобы найти .nexto
, относящийся к input
, вызвавшему событие.
В качестве такового вы можете использовать комбинацию closest()
, next()
и find()
. Также обратите внимание, что вы должны использовать CSS, чтобы скрыть эти элементы по умолчанию. Кроме того, я бы предложил использовать событие input
вместо keyup
, поскольку оно также работает для событий вставки, запускаемых мышью. Попробуйте это:
var $required = $('input[required]');
$required.on('input', function(event) {
$(this).closest('.input-element').next('.ok-btn').find('.nexto').toggle(this.value !== "");
})
.ok-btn .nexto { display: none; }
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="typeform-element" id="fname">
<p><span class="list">1</span>→What's your First Name? *</p>
<div class="input-element">
<input type="text" name="fname" placeholder="Type your answer..." required class="ip-element">
<p class="blinker">|</p>
</div>
<div class="ok-btn">
<a href="#lname" class="nexto">OK ✔</a>
</div>
</div>
<div class="typeform-element" id="lname">
<p><span class="list">2</span>→What's Your Last Name? *</p>
<div class="input-element">
<input type="text" name="lname" placeholder="Type your answer..." required class="ip-element">
<p class="blinker">|</p>
</div>
<div class="ok-btn">
<a href="#email" class="nexto">OK ✔</a>
</div>
</div>