Hi, I want to show Suggention List with MaskedTextBox at Client Side. I have achieved this using JQuery UI Plugin by storing items in cookie and escaping underscore(_) and hyphen (-) in searching. Below is the code
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default2.aspx.cs" Inherits="Default2" %>
<!DOCTYPE html>
<%@ Register Assembly="Telerik.Web.UI" Namespace="Telerik.Web.UI" TagPrefix="telerik" %>
<html xmlns="http://www.w3.org/1999/xhtml">
<head id="Head1" runat="server">
<script src="//code.jquery.com/jquery-1.10.2.js"></script>
<script src="//code.jquery.com/ui/1.11.4/jquery-ui.js"></script>
<link rel="stylesheet" href="//code.jquery.com/ui/1.11.4/themes/smoothness/jquery-ui.css"/>
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div>
<table>
<tr>
<td>
<telerik:RadScriptManager ID="RadScriptManager1" runat="server"></telerik:RadScriptManager>
<telerik:RadMaskedTextBox ID="TextBox1" CssClass="txtNIN" runat="server" Mask="######-####"></telerik:RadMaskedTextBox>
</td>
</tr>
<tr>
<td>
<asp:Button runat="server" ID="asd" Text="submit" OnClientClick="add()" />
</td>
</tr>
</table>
</div>
<%-- <div class="ui-widget">
<label for="tags">Tags: </label>
<input id="tags"/>
</div>--%>
</form>
</body>
</html>
<script type="text/javascript">
var arr = [];
$(function () {
var myCookie = getCookie("SSNKey");
if (myCookie == null || myCookie == "") {
arr = [];
var json_str = JSON.stringify(arr);
createCookie('SSNKey', json_str);
}
else {
var json_str = getCookie('SSNKey');
arr = JSON.parse(json_str);
}
$("#TextBox1").autocomplete({
minLength: 0,
source: function (request, response) {
var matcher = new RegExp($.ui.autocomplete.escapeRegex(request.term.replace(/_/g, "").replace("-", "")), "i");
var matching = $.grep(arr, function (value) {
return matcher.test(value);
});
response(matching);
},
select: function (event, ui) {
event.preventDefault();
var selectedObj = ui.item;
var y = ["_", "_", "_", "_", "_", "_", "-", "_", "_", "", "_"];
for (var i = 0; i < selectedObj.value.length; i++) {
y[i] = selectedObj.value.charAt(i);
}
$find("<%= TextBox1.ClientID %>").set_value(y.toString().replace(/,/g, ""));
}
})
.focus(function () {
$(this).autocomplete("search", "");
});
});
function createCookie(name, value, days) {
if (days) {
var date = new Date();
date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000));
var expires = "; expires=" + date.toGMTString();
}
else var expires = "";
document.cookie = name + "=" + value + expires + "; path=/";
}
function getCookie(cname) {
var name = cname + "=";
var ca = document.cookie.split(';');
for (var i = 0; i < ca.length; i++) {
var c = ca[i];
while (c.charAt(0) == ' ') c = c.substring(1);
if (c.indexOf(name) == 0) return c.substring(name.length, c.length);
}
return "";
}
function add() {
var x = document.getElementById('TextBox1').value.replace(/_/g, "").replace("-","");
if (arr.indexOf(x) == -1) {
arr.unshift(x)
if (arr.length > 5) {
arr.pop();
}
var json_str = JSON.stringify(arr);
createCookie('SSNKey', json_str);
}
}
</script>