So i have downloaded select2 i have “installed it” by putting it into my folder and then loaded it on my site when i check the console (where i can see all of the scripts being loaded) i can see the file select2.js
I went to their documentation and copied it and added $("#e9").select2();
However when i load the page i get the following error:
TypeError: $(...).select2 is not a function $("#e9").select2();
Have anyone else experianced anything like this?
Additional information here is my script:
jQuery(document).ready(function(){ var max_amount = parseFloat($('#max_amount').val()); $( "#item_amount" ).keyup(function() { if($(this).val() > max_amount){ $(this).val( max_amount); } if( /D/.test($(this).val()) ){ alert('Må kun indeholde tal!'); $(this).val(''); } if($(this).val()== '0'){ alert('Må ikke være 0!'); $(this).val(''); } }); $("#e1").select2(); }); function addToBasket(){ var amount = $('#item_amount').val(); if(amount == ""){ amount = 1; } if(amount > 0){ $.ajax({ type: 'POST', url: myBaseUrl + 'Products/addItemToBasket', dataType: 'json', data: { id: window.location.pathname.substring(window.location.pathname.lastIndexOf('/') + 1), amount: amount }, success: function (data) { var urlToBasket = myBaseUrl+'Products/basket'; var newAmount = parseInt(amount) var price = data[0]['Product']['pris']; var id = data[0]['Product']['id']; var dat = data; var tmp_basket_html = $('#basket_amount').html(); if($('#basket_amount').html() !== " Tom"){ $('#shopping_table_body').append( "<tr id='"+id+"'>" + "<td class='image'>" + ""+ "</td>" + "<td class='name'>" + " "+data[0]['Product']['name'] + "</td>"+ "<td class='quantity'>" + "x "+amount +""+ "</td>"+ "<td class='total'>" + ""+price*amount+ "</td>" + ""+ "<td class='remove'>" + "<input class='icon-remove' type='button' onclick='removeItemFromBasket("+id+")'>"+ "</td>"+ "</tr>" ); }else{ $("#shopping_menu").append( "<ul class='dropdown-menu topcartopen'>"+ "<li id='basket_list'>"+ "<table id='shopping_table'>"+ "<tbody id='shopping_table_body'>"+ "<tr id='"+id+"'>" + "<td class='image'>" + ""+ "</td>" + "<td class='name'>" + " "+data[0]['Product']['name'] + "</td>"+ "<td class='quantity'>" + "x "+amount +""+ "</td>"+ "<td class='total'>" + ""+price*amount+ "</td>" + ""+ "<td class='remove'>" + "<input class='icon-remove' type='button' onclick='removeItemFromBasket("+id+")'>"+ "</td>"+ "</tr>"+ "</table>"+ "</li>"+ "<div class='well pull-right'>"+ "<input type='button' onclick='goToBasket()' class='btn btn-success' value='Tjek ud'>"+ "</div>"+ "</ul>" ) } updateTotal(amount,price); updateBasketAmount(); } }); } Notifier.success('Vare tilføjet', 'Tilføjet'); // text and title are both optional. } function updateTotal(amount, price){ var price = parseFloat(price); var oldValue = parseFloat($('#basket_total_cost').html()); var newPrice = amount*price+oldValue; $('#basket_total_cost').html(newPrice); } function updateBasketAmount(){ var tmp = $('#basket_amount').html(); if(!isNaN(tmp)){ var oldAmount = parseInt(tmp.substr(0,2)); var i = oldAmount + 1;; $('#basket_amount').html( ""+i+" vare(r)" ); }else{ $('#basket_amount').html( "1"+" vare(r)" ); } } function goToBasket(){ window.location.href = myBaseUrl+'Products/basket'; }
Advertisement
Answer
I was having this problem when I started using select2 with XCrud. I solved it by disabling XCrud from loading JQuery, it was it a second time, and loading it below the body tag. So make sure JQuery isn’t getting loaded twice on your page.