problems prepopulating text fields

Do you have a question? Post it now! No Registration Necessary.  Now with pictures!

Threaded View
I've written code like the following
<script language="javascript">
function populateTextField(strWidget, strInitialData)  {
    var elem = (document.getElementById) ?
document.getElementById(strWidget) : ((document.all) ?
document.all(strWidget) : null);
    if (elem)  {
        elem.value = strInitialData;

function initForm()  {
    populateTextField ("txtDateOfRank", "  -  -  ");
<body  onload="initForm();">
<form NAME="frmAttendeeInfo" id="frmAttendeeInfo">
    <div id="divDateOfRank">
        <p>Date of Rank</p>
        <INPUT TYPE="text" NAME="txtDateOfRank" id="txtDateOfRank" SIZE="8"
MAXLENGTH="8">        <!-- in form dd-mm-yy -->

The value is assigned to the text field correctly upon page load, but
once the page is loaded, I can't change the value in the text field.
Nothing happens.  The javascript consol in Firefox doesn't report an
It seems like once the value is assigned via a "value = " in html, it
prevents any further changes to the text field.  I'm having the same
problem in IE.  If this is the case, then I've got a problem with the
html.  Does anyone know what the fix is?

Re: problems prepopulating text fields

Quoted text here. Click to load it

Works okay here, but it seems like a lot of effort to go to.

Perhaps the problem you're seeing is that the maxsize of the input box
is 8 and you also populate it with 8 characters, so the only way to edit
the input is to delete what's already in it.

To get a date I'd simply use something like this:

        <input name="day" type="text" >
        <select name="month">
                <option value="1">January</option>
                <option value="2">February</option>
                <!-- etc... -->

        <input name="year" type="text">

        <input type="submit"

Perhaps you're trying to achieve something more complicated?
Martin Jay

Re: problems prepopulating text fields

I want a textbox which has "  -  -  " in it.  If the first character
the user types in the text field is "1", then the text field will
change to "1 -  -  ".  If the first two characters the user types in
the field are " 1", then the text field will change to " 1-  -  ".  If
the first three characters the user types are " 11", then the text
field will change to " 1-1 -  " and so forth.
I'd like to stay away from select tags if possible in this case since,
in my opinion, it takes more time for a user to use three drop down
list (one for the year, one for the month, and one for the day) than it
does for the user to type the six characters of text.

Site Timeline