Hidden form fields are essential components in web development, allowing developers to store and transmit data without displaying it to users.
Whether you’re working with authentication tokens, user IDs, or tracking information, knowing how to manipulate hidden fields with jQuery is crucial for modern web applications.
In this tutorial, I will explain to you how to set a hidden field value in jQuery.
What Are Hidden Form Fields?
Hidden form fields are HTML input elements with type=”hidden” that remain invisible to users but can store valuable data. They’re commonly used for:
- Session tokens and CSRF protection
- User identification numbers
- Form state management
- Tracking parameters
- Database record IDs
Basic Syntax for Setting Hidden Field Values
The simple method to set a hidden field value in jQuery is using the .val() method:
$('#hiddenFieldId').val('new value');This approach works identically to setting values for visible input fields.
Method 1: Set Hidden Field Value by ID
The most common approach is targeting hidden fields by their unique ID attribute.
HTML Structure:
<form id="userForm">
<input type="text" name="username" placeholder="Enter username">
<input type="hidden" id="userId" name="userId" value="">
<input type="hidden" id="sessionToken" name="sessionToken" value="">
<button type="submit">Submit</button>
</form>jQuery Implementation:
$(document).ready(function() {
// Set single hidden field value
$('#userId').val('12345');
// Set multiple hidden field values
$('#sessionToken').val('abc123xyz789');
// Dynamic value assignment
var currentUserId = getCurrentUserId(); // Your custom function
$('#userId').val(currentUserId);
});You can see the output in the screenshot below.

Method 2: Set Hidden Field Value by Name Attribute
When multiple elements share the same name or when ID isn’t available, use the name attribute:
// Target by name attribute
$('input[name="userId"]').val('67890');
// Target hidden input specifically by name
$('input[type="hidden"][name="sessionToken"]').val('newToken123');You can see the output in the screenshot below.

Method 3: Set Multiple Hidden Fields Simultaneously
For efficiency, you can set multiple hidden field values in a single operation:
$(document).ready(function() {
// Method 1: Chain operations
$('#userId').val('12345').end()
.find('#sessionToken').val('token123').end()
.find('#csrfToken').val('csrf456');
// Method 2: Object-based approach
var hiddenFieldValues = {
'#userId': '12345',
'#sessionToken': 'token123',
'#csrfToken': 'csrf456'
};
$.each(hiddenFieldValues, function(selector, value) {
$(selector).val(value);
});
});You can see the output in the screenshot below.

Dynamic Hidden Field Creation and Value Setting
Sometimes you need to create hidden fields dynamically and set their values immediately:
function addHiddenField(formSelector, fieldName, fieldValue) {
// Remove existing field if it exists
$(formSelector + ' input[name="' + fieldName + '"]').remove();
// Create and append new hidden field
var hiddenField = $('<input>')
.attr('type', 'hidden')
.attr('name', fieldName)
.val(fieldValue);
$(formSelector).append(hiddenField);
}
// Usage example
$(document).ready(function() {
addHiddenField('#userForm', 'trackingId', 'track_001');
addHiddenField('#userForm', 'referralSource', 'google');
});Real-World Examples
Let me explain to you the real-world examples of setting hidden field value in jQuery.
Example 1: E-commerce Cart Management
E-commerce Cart Management:** Demonstrates using hidden fields to pass product ID and quantity when adding items to a shopping cart.
$(document).ready(function() {
$('.add-to-cart-btn').click(function() {
var productId = $(this).data('product-id');
var quantity = $(this).siblings('.quantity-input').val();
// Set hidden fields before form submission
$('#cartForm input[name="productId"]').val(productId);
$('#cartForm input[name="quantity"]').val(quantity);
$('#cartForm input[name="action"]').val('add_to_cart');
// Submit form
$('#cartForm').submit();
});
});Example 2: Multi-Step Form Navigation
Multi-Step Form Navigation:** Shows how to save current step and form data in hidden fields for seamless multi-step form handling.
$(document).ready(function() {
var currentStep = 1;
$('.next-step').click(function() {
currentStep++;
$('#currentStep').val(currentStep);
// Store form data in hidden fields
var formData = $('#stepForm').serializeArray();
$.each(formData, function(index, field) {
if (field.name !== 'currentStep') {
$('input[name="saved_' + field.name + '"]').val(field.value);
}
});
});
});Example 3: AJAX Form Submission with Hidden Token
AJAX Form Submission with Hidden Token:** Illustrates updating a hidden CSRF token dynamically before submitting a secure form via AJAX.
$(document).ready(function() {
// Get CSRF token from meta tag or API
function updateCSRFToken() {
$.get('/api/csrf-token', function(data) {
$('input[name="csrf_token"]').val(data.token);
});
}
// Update token before form submission
$('#secureForm').on('submit', function(e) {
e.preventDefault();
updateCSRFToken();
setTimeout(function() {
// Submit form after token update
$('#secureForm')[0].submit();
}, 100);
});
});Best Practices and Tips
I will show you the best practices and tips to set the hidden field value.
1. Validate Hidden Field Values
Shows how to safely set hidden field values only if the element exists and the value is valid, preventing errors.
function setHiddenFieldSafely(selector, value) {
var field = $(selector);
if (field.length > 0 && value !== undefined && value !== null) {
field.val(value);
return true;
}
console.warn('Failed to set hidden field:', selector);
return false;
}2. Use Data Attributes for Complex Data
Use Data Attributes for Complex Data: Demonstrates storing complex objects as JSON strings in hidden fields for later retrieval or form submission.
// Store complex data as JSON string
var userData = {
id: 123,
preferences: ['email', 'sms'],
settings: { theme: 'dark', language: 'en' }
};
$('#userDataField').val(JSON.stringify(userData));3. Event-Driven Value Updates
Event-Driven Value Updates: Illustrates updating hidden fields dynamically based on changes in visible inputs using event listeners like input or change.
$(document).ready(function() {
// Update hidden fields when visible fields change
$('#visibleInput').on('input change', function() {
var processedValue = processInputValue($(this).val());
$('#relatedHiddenField').val(processedValue);
});
});Common Troubleshooting Issues
Here, I have given some common troubleshooting issues that may occur while working with hidden field values.
Issue 1: jQuery Collection vs. DOM Element
Remember that jQuery returns a collection. To access the DOM element directly:
// jQuery method (recommended)
$('#hiddenField').val('value');
// DOM element access
$('#hiddenField')[0].value = 'value';Issue 2: Timing Issues with Dynamic Content
// Use event delegation for dynamically created elements
$(document).on('click', '.dynamic-button', function() {
$('input[name="dynamicHidden"]').val('updated_value');
});Mastering jQuery hidden field manipulation is essential for creating dynamic, interactive web applications. Whether you’re handling form submissions, managing user sessions, or implementing security tokens, the techniques covered in this guide will help you efficiently manage hidden form data.
Remember to always validate your hidden field operations, use appropriate selectors, and consider security implications when storing sensitive data in hidden fields. With these best practices and examples, you’ll be well-equipped to handle any hidden field scenario in your web projects.
You may also like to read other jQuery articles:
- 51 jQuery Examples with Source Code
- How to Check if Input is Empty Using jQuery
- jQuery Check if Array is Empty
- jQuery Check if String Contains Specific Word

I am Bijay Kumar, a Microsoft MVP in SharePoint. Apart from SharePoint, I started working on Python, Machine learning, and artificial intelligence for the last 5 years. During this time I got expertise in various Python libraries also like Tkinter, Pandas, NumPy, Turtle, Django, Matplotlib, Tensorflow, Scipy, Scikit-Learn, etc… for various clients in the United States, Canada, the United Kingdom, Australia, New Zealand, etc. Check out my profile.