Search the Community
Showing results for tags 'jquery onclick option'.
-
Hi, I have a select list, when a user chooses random_5, if they don't like the choice that is automatically made I would like them to be able to choose this option again. The problem is Chrome doesn't recognise .click on the option element on line 48 of the fiddle. It is well documented on this and other sites that you should use .change on the select element. The problem for me is, if a user chooses random_5 after having chosen it before there is no change and the event isn't fired. I have a fiddle http://jsfiddle.net/4gEFh/2/ Any help greatly appreciated. <select id="sel_list"> <option value="clear_all">Clear All</option> <option value="select_all">Select All</option> <option value="random_5">Random 5</option> </select> <br/> <br/> <input type="checkbox" value="ruddy" /> Ruddy<br/> <input type="checkbox" value="garrido" /> Garrido<br/> <input type="checkbox" value="bennett" /> Bennett<br/> <input type="checkbox" value="johnson" /> Johnson<br/> <input type="checkbox" value="pilkington" /> Pilkington<br/> <input type="checkbox" value="wolfswinkle" /> Wolfswinkle<br/> <input type="checkbox" value="hooper" /> Hooper<br/> <input type="checkbox" value="fer" /> Fer<br/> <input type="checkbox" value="snodgrass" /> Snodgrass<br/> <input type="checkbox" value="martin" /> Martin<br/> <script> $(document).ready(function(){ $('#sel_list').change(function() { if ($(this).val() === 'clear_all') { $('input[type="checkbox"]:checked').removeAttr('checked'); } if ($(this).val() === 'select_all') { $("input[type=checkbox]").prop('checked', true); } }); }); $(document).ready(function(){ function getRandomArrayElements(arr, count) { var randoms = [], clone = arr.slice(0); for (var i = 0, index; i < count; ++i) { index = Math.floor(Math.random() * clone.length); randoms.push(clone[index]); clone[index] = clone.pop(); } return randoms; } //Dummy array function createArray(c) { var ar = []; for (var i = 0; i < c; i++) { ar.push(i); } return ar; } //check random checkboxes function checkRandom(r, nodeList) { for (var i = 0; i < r.length; i++) { nodeList.get(r[i]).checked = true; } } //console.log(getRandomArrayElements(a, 10)); $(function() { var chkCount = 10; //this can be changed var numberOfChecked = 5; $("option[value=random_5]").on('click',function(e) { var chks = $('input[type=checkbox]'); chks.attr("checked", false); var a = createArray(chkCount); var r = getRandomArrayElements(a, numberOfChecked); checkRandom(r, chks); }); }); }); </script>