<asp:DropDownList ID = "ddlHidden1" runat="server" > <asp:ListItem value="0">Select <asp:ListItem value="1">1 <asp:ListItem value="2">2 <asp:ListItem value="3">3 <asp:ListItem value="4">4 <asp:ListItem value="5">5 </asp:DropDownList> <asp:DropDownList ID = "ddlHidden2" runat="server"> <asp:ListItem value="0">Select <asp:ListItem value="1">1 <asp:ListItem value="2">2 <asp:ListItem value="3">3 <asp:ListItem value="4">4 <asp:ListItem value="5">5 </asp:DropDownList> <asp:Button ID=btnSave runat="server" Text="Save" OnClick="btnSave_Click" /> <script type=text/javascript> var ids = ['ddlHidden1', 'ddlHidden2']; NodeList.prototype.forEach = HTMLCollection.prototype.forEach = Array.prototype.forEach; var selected = []; ids = makeid(ids); var opts = find(ids); updateS(opts); massdisabler(opts); assignFunc(ids, disabler); function assignFunc(i, func) { //done var x; for (x = 0; x < i.length; ++x) { i[x].onchange = function () { func(this); }; } } function disabler(i) { console.log(selected); updateS(opts); massdisabler(opts); } function makeid(i) { //done var o = []; i.forEach(function (v) { o.push(document.getElementById(v)) }); return o; } function find(ids) { //done var o = {}; for (var i = 0; i < ids.length; ++i) { o[i] = {}; ids[i].children.forEach(function (v, n) { o[i][n] = v; }); } return o; } function massdisabler(op) { //done var y = Object.keys(op).length; for (var x = 0; x < y; x++) { var t = 0, l = Object.keys(opts[x]).length; for (var v = 0; v < l; v++) { t = op[x][v]; if (selected.some(function (k) { if (t.value == k) { return true; } })) { t.setAttribute("disabled", "disabled"); } else { t.removeAttribute("disabled"); } } } } function updateS(op) { //done var s = [], y = Object.keys(op).length; for (var x = 0; x < y; x++) { var t = 0, l = Object.keys(opts[x]).length; for (var v = 0; v < l; v++) { t = op[x][v]; var yn = s.some(function (k) { if (t.value == k) { return true; } }); if (t.selected && (!yn)) s.push(t.value); } } selected = s; } </script>>
<script type="text/javascript"> var ids = ['<%=ddlHidden1.ClientID %>', '<%=ddlHidden2.ClientID %>']; </script>
var
This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)