To achieve this without an explicit loop you can use filter()
to find all fields which do not have a value. If there aren't any, then you know you are safe to make your AJAX request. Try this:
jQuery($ => {
let $tp = $(".tp").on('input', e => {
if (e.target.value.length == 1) {
$(e.target).next().focus();
}
if ($tp.filter((i, el) => !el.value.trim()).length == 0) {
console.log('AJAX call goes here...');
}
});
});
input {
width: 15px;
text-align: center;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<input type="tel" class="tp" maxlength="1">
<input type="tel" class="tp" maxlength="1">
<input type="tel" class="tp" maxlength="1">
<input type="tel" class="tp" maxlength="1">
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…