Javascript Question: Keep vars updated as form vars change

TechBoyJK

Lifer
Oct 17, 2002
16,701
60
91
Hi Guys,

Is there a way to declare a local var that is kept updated as form input changes?

I'd like to be able to declare a var that represents the contents of a form field.

If I declare the var before any input is entered into the form field, I have to update the var again before I do any comparisons.

Basically, I'd like to declare something early on like this:

var myPassword = document.forms["registerForm"]["password"].value;

So that anytime I reference myPassword it's value is the current state of the field.

For instance, if I set the var early, it's just going to be blank. But then if someone updates the field, I'd have to set the var again to get it updated. Can I get around that?
 

Cogman

Lifer
Sep 19, 2000
10,278
126
106
Hi Guys,

Is there a way to declare a local var that is kept updated as form input changes?

I'd like to be able to declare a var that represents the contents of a form field.

If I declare the var before any input is entered into the form field, I have to update the var again before I do any comparisons.

Basically, I'd like to declare something early on like this:

var myPassword = document.forms["registerForm"]["password"].value;

So that anytime I reference myPassword it's value is the current state of the field.

For instance, if I set the var early, it's just going to be blank. But then if someone updates the field, I'd have to set the var again to get it updated. Can I get around that?

A few things.

In browser stuff, excluding some of the newer stuff, javascript is not allowed to run at the same time as user input is happening and vice versa. So if you declare

Code:
var myPass = getPass();

at the beginning of your event handling function or whatever, you are guaranteed to have the current form value. What you can't do (and really shouldn't do) is create a variable at global scope and expect it to automatically update. You can manually update that variable (don't) but really your better bet is to not rely on a global variable and instead look up the value at the appropriate place.
 

fuzzybabybunny

Moderator<br>Digital & Video Cameras
Moderator
Jan 2, 2006
10,455
35
91
Hi Guys,

Is there a way to declare a local var that is kept updated as form input changes?

When you say this, do you mean that this var should be updated the instant the form input changes? Or do you want it to update after the form gets submitted?
 

KB

Diamond Member
Nov 8, 1999
5,401
386
126
This is called databinding and it is very common problem in form based software development. Databinding is the solution of keeping data objects and UI components synchronized. Several frameworks exists to solve this for javascript/html and the one I like the most is called knockout JS. Everytime the client updates a UI component it handles writing that to the object. In two-way databinding if you update the object, the framework handles updating the UI component.

http://knockoutjs.com/index.html
 

smackababy

Lifer
Oct 30, 2008
27,024
79
86
The simplest way I can think of (and I avoid doing as much as possible in Javascript) is to use an onblur or onchange method for the fields that simply set your global variable to the desired value.
 

Occ

Senior member
Nov 11, 2009
276
0
76
Why not just use a function instead?

function getMyPassword() { return document.forms["registerForm"]["password"].value; }
 

purbeast0

No Lifer
Sep 13, 2001
52,924
5,795
126
i do this in angular all day long, it's just part of the framework the way it binds.
 

TechBoyJK

Lifer
Oct 17, 2002
16,701
60
91
i do this in angular all day long, it's just part of the framework the way it binds.

I actually just put in a resume to a f500 company looking for a UI designer. The guy said they just started using Angular for everything. He said it was no big deal if I hadn't used it before as long as I was already comfortable with jQuery. I just have to learn about it.
 

purbeast0

No Lifer
Sep 13, 2001
52,924
5,795
126
I actually just put in a resume to a f500 company looking for a UI designer. The guy said they just started using Angular for everything. He said it was no big deal if I hadn't used it before as long as I was already comfortable with jQuery. I just have to learn about it.

yeah if you know how to do javascript and mvc, you will get it pretty quickly. i was still fairly new to js (less than a year total) when i started doing angular on my current project, and now i feel A LOT more comfortable with js overall, and same with angular.
 
sale-70-410-exam    | Exam-200-125-pdf    | we-sale-70-410-exam    | hot-sale-70-410-exam    | Latest-exam-700-603-Dumps    | Dumps-98-363-exams-date    | Certs-200-125-date    | Dumps-300-075-exams-date    | hot-sale-book-C8010-726-book    | Hot-Sale-200-310-Exam    | Exam-Description-200-310-dumps?    | hot-sale-book-200-125-book    | Latest-Updated-300-209-Exam    | Dumps-210-260-exams-date    | Download-200-125-Exam-PDF    | Exam-Description-300-101-dumps    | Certs-300-101-date    | Hot-Sale-300-075-Exam    | Latest-exam-200-125-Dumps    | Exam-Description-200-125-dumps    | Latest-Updated-300-075-Exam    | hot-sale-book-210-260-book    | Dumps-200-901-exams-date    | Certs-200-901-date    | Latest-exam-1Z0-062-Dumps    | Hot-Sale-1Z0-062-Exam    | Certs-CSSLP-date    | 100%-Pass-70-383-Exams    | Latest-JN0-360-real-exam-questions    | 100%-Pass-4A0-100-Real-Exam-Questions    | Dumps-300-135-exams-date    | Passed-200-105-Tech-Exams    | Latest-Updated-200-310-Exam    | Download-300-070-Exam-PDF    | Hot-Sale-JN0-360-Exam    | 100%-Pass-JN0-360-Exams    | 100%-Pass-JN0-360-Real-Exam-Questions    | Dumps-JN0-360-exams-date    | Exam-Description-1Z0-876-dumps    | Latest-exam-1Z0-876-Dumps    | Dumps-HPE0-Y53-exams-date    | 2017-Latest-HPE0-Y53-Exam    | 100%-Pass-HPE0-Y53-Real-Exam-Questions    | Pass-4A0-100-Exam    | Latest-4A0-100-Questions    | Dumps-98-365-exams-date    | 2017-Latest-98-365-Exam    | 100%-Pass-VCS-254-Exams    | 2017-Latest-VCS-273-Exam    | Dumps-200-355-exams-date    | 2017-Latest-300-320-Exam    | Pass-300-101-Exam    | 100%-Pass-300-115-Exams    |
http://www.portvapes.co.uk/    | http://www.portvapes.co.uk/    |