cannot read property 'id' of undefined select2

前端 未结 2 1632
情歌与酒
情歌与酒 2021-02-02 10:37

I used Select2 4.0.6, I have a bug like below:

allowClear gives \"Uncaught TypeError: Cannot read property \'id\' of undefined\" when used on select.

How can I f

相关标签:
2条回答
  • 2021-02-02 10:43

    If you set the debug property to true you'll see a warning message.

    The allowClear option should be used in combination with the placeholder option.

    <!DOCTYPE html>
    <html>
    <head>
        <title></title>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    	    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
    	<link href="https://cdnjs.cloudflare.com/ajax/libs/select2/4.0.6-rc.0/css/select2.min.css" rel="stylesheet" />
    	<script src="https://cdnjs.cloudflare.com/ajax/libs/select2/4.0.6-rc.0/js/select2.min.js"></script>
    </head>
    <body>
    	<select role="select" id="myoption">
    		<option value="001">abcs </option><option value="002">dshdsh</option><option value="003">A</option>
    		<option value="004">ANAM CO</option>
    	</select>
    
    </body>
    </html>
    <script>
     $("#myoption").select2({
            allowClear: true,
            width: '300px',
            height: '34px',
            debug: true
            //data: data
        });
    </script>

    So you have to define a placeholder as default.

    <!DOCTYPE html>
    <html>
    <head>
        <title></title>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    	    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
    	<link href="https://cdnjs.cloudflare.com/ajax/libs/select2/4.0.6-rc.0/css/select2.min.css" rel="stylesheet" />
    	<script src="https://cdnjs.cloudflare.com/ajax/libs/select2/4.0.6-rc.0/js/select2.min.js"></script>
    </head>
    <body>
    	<select role="select" id="myoption">
    		<option value="001">abcs </option><option value="002">dshdsh</option><option value="003">A</option>
    		<option value="004">ANAM CO</option>
    	</select>
    
    </body>
    </html>
    <script>
     $("#myoption").select2({
            allowClear: true,
            width: '300px',
            height: '34px',
            placeholder :'select..'
            //data: data
        });
    </script>

    0 讨论(0)
  • 2021-02-02 11:03

    In my case data-placeholder helped as shown below:

    Select element:

    <select class="form-control select2" data-placeholder="All" required="required" id="manager_id" name="filter[manager_id]" tabindex="-1" aria-hidden="true">
        <option value="1" selected="selected">Manager 1</option>
        <option value="2" selected="selected">Manager 2</option>
    </select>
    

    JS:

    $('.select2').each(function(){
        var select = $(this);
        select.select2({
             width: '100%',
             allowClear: !select.prop('required'),
             language: {
                noResults: function () {
                    return "{{ __('No results found') }}";
                }
            }
        });
    });
    
    0 讨论(0)
提交回复
热议问题