BenM BenM - 3 months ago 13
jQuery Question

jQuery .attr('value', 'new_value') not working?

I am trying to dynamically change the actual HTML

value
attribute of an input using jQuery. Although using
input.attr('value', 'myNewVal');
works to change it visually, when I inspect the source using Developer Tools in Chrome, the HTML attribute hasn't changed.

Since I'm doing a check in some PHP later on to see if the input has its original value, I need a way of changing the actual HTML attribute, ideally in jQuery. Has anyone else encountered this annoying bug and do any of you guys know a workaround?

I've also tried with
.val()
and the same happens - the underlying HTML attribute is unchanged.

Answer

attr should work as well, specially since you do see it change, but try also to use val - it is better suited for changing values:

input.val('myNewVal');

Make sure not to use the "View Source" command, it reloads the page, or shows the page as it was loaded. Instead, use the DOM viewer - right click on the input element and choose "Inspect element". (This is the same as "Development tools" - Ctrl+Shift+I in Chrome in Windows)