Visualizza avviso in base al colore di sfondo di un’opzione di selezione a discesa

A avere un elenco a discesa che viene compilato da un database, alcune opzioni nell’elenco hanno un colore di sfondo diverso a seconda che siano state vietate o meno.

Vorrei eseguire uno script VB eseguito su Change che visualizza un avviso se l’utente tenta di selezionare un utente dall’elenco che ha un colore di sfondo rosso.

Per esempio:

Jim Bob ----> Red Background (Highlighted Red) Dave Tom 

quindi, se l’utente tenta di selezionare Bob, verrà visualizzato un avviso e quindi la selezione torna a NULL.

 Sub TestSub() frmCol = document.getElementById("frmNew").style.backgroundColor if frmCol = "Red" Then msgbox "This user is banned, please select another user!" End If End Sub 

Speriamo che abbia senso! Grazie per l’aiuto, molto apprezzato. Chiedi se sono necessari ulteriori dettagli!

Qualcosa di simile dovrebbe fare ciò che vuoi:

 For Each opt In document.getElementById("frmNew").options If opt.selected And opt.style.backgroundColor = "red" Then MsgBox "This user is banned." End If Next 

Tuttavia, come ha detto @DanielCook, il semplice controllo del nome effettivo rispetto a un elenco di utenti vietati sarebbe un approccio migliore, poiché la logica dell’applicazione è meno protetta in questo modo:

 Set bannedUsers = CreateObject("Scripting.Dictionary") bannedUsers.Add "johnsmith", True bannedUsers.Add "cmanson", True ... For Each opt In document.getElementById("frmNew").options If opt.selected And bannedUser.Exists(opt.text) Then MsgBox "This user is banned." End If Next