4

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>

1 Answer 1

3

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;
}
Sign up to request clarification or add additional context in comments.

1 Comment

It depends on the implementation of javascript really, but here's a similar question answered: stackoverflow.com/questions/871460/webkit-javascript-reference

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.