Multiple Select limit number of selection

后端 未结 5 1391
無奈伤痛
無奈伤痛 2020-12-01 04:48

I want user to select maximum of only three options from multiple select options. I tried this code so far:


                        
    
提交评论

  • 2020-12-01 05:13

    You are using this inside change event, which is reference to select.

    Try this:

    $("select").on('click', 'option', function() {
        if ($("select option:selected").length > 3) {
            $(this).removeAttr("selected");
            // alert('You can select upto 3 options only');
        }
    });
    

    Demo: http://jsfiddle.net/tusharj/tmkzebnj/

    EDIT

    $("select").on('change', function(e) {
        if (Object.keys($(this).val()).length > 3) {
            $('option[value="' + $(this).val().toString().split(',')[3] + '"]').prop('selected', false);
        }
    });
    

    Demo: http://jsfiddle.net/tusharj/tmkzebnj/1/

    0 讨论(0)
  • 2020-12-01 05:14

    Try this...

    Check length and deselect after reach maximum select

    <select id="userRequest_activity" required name="activity[]" class="multiselect form-control" multiple="multiple">
        <option value="2">Bungee Jumping</option>
        <option value="3">Camping</option>
        <option value="5">Mountain Biking</option>
        <option value="6">Rappelling</option>
        <option value="7">Rock Climbing / Bouldering</option>
        <option value="8">Skiing</option>
        <option value="10">Wild Life (Safari)</option>
        <option value="11">Canoeing &amp; Kayaking</option>
        <option value="12">Rafting</option>
        <option value="13">Sailing</option>
        <option value="14">Scuba Diving</option>
        <option value="15">Snorkeling</option>
        <option value="16">Surfing</option>
        <option value="18">Hang Gliding</option>
        <option value="19">Hot-air Ballooning</option>
        <option value="20">Micro-light Aircrafts</option>
        <option value="21">Paragliding</option>
        <option value="22">Paramotoring</option>
        <option value="23">Parasailing</option>
        <option value="24">Skydiving / Parachuting</option>
        <option value="25">Zip-line / Flying Fox</option>
        <option value="26">Caving</option>
        <option value="27">Cycling</option>
        <option value="28">Fishing &amp; Angling</option>
        <option value="29">Motorbike trips</option>
        <option value="30">Nature Walks</option>
        <option value="31">Road Trips</option>
        <option value="32">Zorbing</option>
        <option value="33">Trekking Hiking and Mountaineering</option>
        <option value="34">Backpacking</option>
        <option value="61">Water</option>
    </select>
    
        <script type="text/javascript">
    
    
            $(document).ready(function() {
    
              var last_valid_selection = null;
    
              $('#userRequest_activity').change(function(event) {
    
                if ($(this).val().length > 3) {
    
                  $(this).val(last_valid_selection);
                } else {
                  last_valid_selection = $(this).val();
                }
              });
            });
            </script>
    

    DEMO:http://jsfiddle.net/9c3sevuv/

    0 讨论(0)
  • 2020-12-01 05:15

    Try this Fiddle.

    $("select option").click(function() {
        if ($("select option:selected").length > 3) {
            $(this).removeAttr("selected");
            alert('You can select upto 3 options only');
        }
    });
    
    0 讨论(0)
  • 2020-12-01 05:33

    Try this

    $("select").change(function() {
        if($("select option:selected").length > 3) { 
         alert('You can select upto 3 options only');
         $(this).removeAttr("selected");
      }
    
    });
    

    DEMO

    0 讨论(0)
  • 提交回复
    热议问题