PHP/javascript assigning a value to a text field doesn't work?
I have a website someone else coded, where a text field won't display a value that is assigned to it.
Both form1.textfield3.value = form1.textfield1.value; and form1.textfield3.value = "99";
do not work, and the text field remains blank.
This same code works on Internet Explorer (Win and OSX), Safari, Chrome, and Opera. It does NOT work on Firefox 8 or 9.01 (Win and OSX) or 3.6.25; it used to work on an older Firefox we had (version unknown).
Javascript is enabled; is there anything else we can check?
Chosen solution
If you check Firefox's Error Console (Ctrl+Shift+j), you will see "form1 is not defined". This is because Firefox does not automatically convert form1 into a reference to <form name="form1">. Instead, you need to edit the code a bit.
You can resolve the above error by beginning each function where you refer to form1 with this:
var form1 = document.forms["form1"];
However, this probably will just move the error to the next part of the notation (e.g., textfield3). The proper way to refer to the value of a named form field is:
document.forms["form1"].elements["textfield3"].value
or if you have defined form1,
form1.elements["textfield3"].value
So you have some editing to do. Not sure whether there are any shortcuts.
This forum focuses on end-user support. You can find more web development help on the mozillaZine Web Development board. Separate forum, separate registration.
Read this answer in context 👍 1All Replies (2)
Chosen Solution
If you check Firefox's Error Console (Ctrl+Shift+j), you will see "form1 is not defined". This is because Firefox does not automatically convert form1 into a reference to <form name="form1">. Instead, you need to edit the code a bit.
You can resolve the above error by beginning each function where you refer to form1 with this:
var form1 = document.forms["form1"];
However, this probably will just move the error to the next part of the notation (e.g., textfield3). The proper way to refer to the value of a named form field is:
document.forms["form1"].elements["textfield3"].value
or if you have defined form1,
form1.elements["textfield3"].value
So you have some editing to do. Not sure whether there are any shortcuts.
This forum focuses on end-user support. You can find more web development help on the mozillaZine Web Development board. Separate forum, separate registration.
Thanks very much! I tested a few different permutations; the one that finally worked on Firefox was document.forms["form1"].textfield3.value (the other formats did not work - not sure why). I just replaced all necessary instances and everything worked in all the browsers we tested. I'm a bit disappointed that Firefox needed a little special attention, when other browsers handled the old code just fine, but I'm glad our code wasn't too complicated.
Modified