Question

I have a select field that have have present options and I have a php script check a mysql database and add a select tag to the one currently being used.

I need to find a way to know if the user have changed the select field or not before submitting it.

var Access = document.forms[UIDF]["Access"].value;
var DAccess = document.forms[UIDF]["Access"].defaultIndex; <--- This is my problem. I just need to know how to get the selected option value as this keep changing with every user

<select name="Access">
  <option value="0" selected='selected'>Employee</option>
  <option value="1">Team Leader</option>
  <option value="2">Admin</option>
</select>
Was it helpful?

Solution

The Option tag has a javascript attribute defaultSelected that's set to true if the option had a selected value on page load. Note that this is the option tag and not the select one, so you'll have to loop through the options and check for the attribute.

Something like

var DAccess;
var AccessSelect = document.forms[UIDF]["Access"];

for (var i = 0 ; i<AccessSelect.length ; i++)
{
    if (AccessSelect[i].defaultSelected)
        DAccess = AccessSelect[i].value;
}

Or, more to the point:

var AccessHasChanged = false;
var AccessSelect = document.forms[UIDF]["Access"];

for (var i = 0 ; i<AccessSelect.length ; i++)
{
    if (AccessSelect[i].defaultSelected && 
        AccessSelect.value != AccessSelect[i].value)
        AccessHasChanged = true;
}
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top