Jquery Autocomplete
So, starting from the beginning we will need few libraries for using Jquery Autocomplete . Basically, that is included in Jquery UI js. So we need to add these scripts in our webpage
<link rel="stylesheet" href="//code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css"> <script src="https://code.jquery.com/jquery-1.12.4.js"></script> <script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>
So, after adding these scripts in the head section of your webpage. We have to add this code in our webpage
<script> $(document).ready(function () { var datalist = ["hindi", "english", "math", "science", "geography", "socialscience", "sanskrit"] $("#TestAutocomplete").autocomplete({ source: datalist, response: function (event, ui) { ui.content.push({ value: '', label: "Add new item" }); ui.content.push({ value: event.target.value, label: event.target.value }); }, }).data("ui-autocomplete")._renderItem = function (ul, item) { if (item.value == '') { return $('<li class="ui-state-disabled" style="padding-left:5px;">' + item.label + '</li>').appendTo(ul); } var expression = new RegExp(this.term, 'gi'); var highlight = item.label.replace(expression, "<span style='font-weight:bold;'>" + this.term + "</span>") return $("<li>") .append("<a>" + highlight + "</a>") .appendTo(ul); } }) </script>
So, this function will be placed in document ready which will initialize the autocomplete. You will notice that we have create a array variable there. Which contains all the items of the Autocomplete.
.data("ui-autocomplete")._renderItem = function (ul, item) { if (item.value == '') { return $('<li class="ui-state-disabled" style="padding-left:5px;">' + item.label + '</li>').appendTo(ul); } var expression = new RegExp(this.term, 'gi'); var highlight = item.label.replace(expression, "<span style='font-weight:bold;'>" + this.term + "</span>") return $("<li>") .append("<a>" + highlight + "</a>") .appendTo(ul); }
This method is fired whenever Jquery Autocomplete tries to create html for rendering. Here we have adding bold wherever searche text is found.
@{ ViewData["Title"] = "Autocomplete"; } <style> .ui-state-active, .ui-widget-content .ui-state-active, .ui-widget-header .ui-state-active, a.ui-button:active, .ui-button:active, .ui-button.ui-state-active:hover { background: transparent !important; font-weight: normal; color: black !important; width: 100% !important; min-width: 200px !important; border:0px!important; } </style> <link rel="stylesheet" href="//code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css"> <script src="https://code.jquery.com/jquery-1.12.4.js"></script> <script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script> <div style="margin-top:50px;"> <label for="TestAutocomplete">Subjects</label> <input type="text" id="TestAutocomplete" class="validate" /> </div> @section scripts{ <script> $(document).ready(function () { var datalist = ["hindi", "english", "math", "science", "geography", "socialscience", "sanskrit"] $("#TestAutocomplete").autocomplete({ source: datalist, response: function (event, ui) { ui.content.push({ value: '', label: "Add new item" }); ui.content.push({ value: event.target.value, label: event.target.value }); }, }).data("ui-autocomplete")._renderItem = function (ul, item) { if (item.value == '') { return $('<li class="ui-state-disabled" style="padding-left:5px;">' + item.label + '</li>').appendTo(ul); } var expression = new RegExp(this.term, 'gi'); var highlight = item.label.replace(expression, "<span style='font-weight:bold;'>" + this.term + "</span>") return $("<li>") .append("<a>" + highlight + "</a>") .appendTo(ul); } }) </script> }
So , this is the complete code available for Jquery Autocomplete. You can also download the source code by downloading from the attachment button. Or you can have a look at our youtube video for more details.