I have a question.
When I have form with lets say about 100 hidden input fields, how can I show them one by one after I press enter in the last shown input field?
CodePudding user response:
This adds a key handler to each type="text"
field. The key handler tests whether the field is the last type="text"
field, and if the key was the Enter key. If so, it finds the next type="hidden"
field, sets its type to "text", and adds the handler to it.
function callback(e){
if (
// If it's the last text field
$(this).index() == $('#demo input[type="text"]').length - 1
&&
// And the key pressed is Enter:
e.which == 13
) {
// Find next hidden field, change it to text, and add the key handler:
$(this).next('input[type="hidden"]').prop("type", "text").keypress(callback)
}
}
// Add key handler to all text fields:
$('#demo input[type="text"]').keypress(callback)
<script src="https://code.jquery.com/jquery-3.6.0.js" integrity="sha256-H K7U5CnXl1h5ywQfKtSj8PCmoN9aaq30gDh27Xc0jk=" crossorigin="anonymous"></script>
<div id="demo">
<input type="text">
<input type="text">
<input type="text">
<input type="hidden" value="hidden1">
<input type="hidden" value="hidden2">
<input type="hidden" value="hidden3">
</div>
References:
jQuery: how do I check if an element is the last sibling?
How can I detect pressing Enter on the keyboard using jQuery?