mercredi 15 juin 2016

Limiting the options in a combobox, based on the selected one

I made a similar question yesterday, but couldn't come up with a solution since then, so i went and refined my code a bit to a logic that seemed more plausible to work. However, it didn't. I want to have only a couple of options in a combobox available to the user, depending on what option was pre-selected. Here is the Combobox:

<SELECT class=caixas id=cbostatus style="WIDTH: 3cm;" tabIndex=25 name=cbostatus onchange= "StatusTest(); hideField();" >   
                            <option selected></option>
                            <option value="Planned" id="optionPlanned" <?php if ($row['task_status']=='Planned') echo 'selected="selected"';?>>Planned</option>
                            <option value="Started" id="Started" <?php if ($row['task_status']=='Started') echo 'selected="selected"';?>>Started</option>
                            <option value="Available" id="Available" <?php if ($row['task_status']=='Available') echo 'selected="selected"';?>>Available</option>
                            <option value="Finished" id="Finished" <?php if ($row['task_status']=='Finished') echo 'selected="selected"';?>>Finished</option>
                            <option value="Impeded" id="Impeded" <?php if ($row['task_status']=='Impeded') echo 'selected="selected"';?>>Impeded</option>
                        </SELECT>

For example, when "Planned" is selected, the only other available option should be "Started". So i went and made a Javascript, for a Onchange Event, like so:

function hideField(){
var e = document.getElementById("cbostatus");
 var strUser = e.options[e.selectedIndex].value;

 if( strUser == 'Planned' ) {
    document.getElementById("Impeded").style.display = 'none';
    document.getElementById("Available").style.display = 'none';
    document.getElementById("Finished").style.display = 'none';
 }
}

And for some reason, it is wrong. Any ideas? (Also, i'd aprecciate if you didn't suggest using Jquery, as i have never used before and don't really have time to learn for this)

Aucun commentaire:

Enregistrer un commentaire