Почему value видимо изменяется но не изменяется в коде?
Атрибут value и сам value - это разные вещи. 
Атрибут value  - говорит о том что при загрузке поле получит это значение. 
А value поля   - это скрытое значение, доступно из DOM. И можно манипулировать из js.
Атрибут value и сам value - это разные вещи. 
Атрибут value  - говорит о том что при загрузке поле получит это значение. 
А value поля   - это скрытое значение, доступно из DOM. И можно манипулировать из js.