Home > Software design >  How can i show hidden input fields
How can i show hidden input fields

Time:05-30

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?

  • Related