FineUI/FineUI.Examples/third-party/autocomplete/multi_values_remote.aspx

89 lines
3.6 KiB
Plaintext
Raw Normal View History

2015-05-19 14:45:47 +08:00
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="multi_values_remote.aspx.cs"
Inherits="FineUI.Examples.autocomplete.multi_values_remote" %>
<!DOCTYPE html>
<html>
<head runat="server">
<title></title>
<link rel="stylesheet" href="../res/jqueryuiautocomplete/jquery-ui.min.css" />
<link rel="stylesheet" href="../res/jqueryuiautocomplete/theme-start/theme.css" />
<style>
.ui-autocomplete-loading {
background: white url('../../res/images/ui-anim_basic_16x16.gif') right center no-repeat;
}
</style>
</head>
<body>
<form id="form1" runat="server">
<f:PageManager ID="PageManager1" runat="server" />
<f:SimpleForm ID="SimpleForm1" runat="server" LabelWidth="60px" Width="600px" BodyPadding="5px" EnableCollapse="true"
Title="简单表单">
<Items>
<f:TextBox ID="TextBox1" runat="server" Label="标题" EmptyText="输入字母 a 试试,可以输入多个值">
</f:TextBox>
</Items>
</f:SimpleForm>
<br />
参考http://jqueryui.com/autocomplete/#multiple-remote
</form>
<script src="../../res/js/jquery.min.js" type="text/javascript"></script>
<script src="../res/jqueryuiautocomplete/jquery-ui.min.js" type="text/javascript"></script>
<script type="text/javascript">
var textbox1ID = '<%= TextBox1.ClientID %>';
F.ready(function () {
// 将字符串 val 以逗号空格作为分隔符,分隔成数组
function split(val) {
return val.split(/,\s*/);
}
// 取得以逗号空格为分隔符的最后一个单词
// 比如,输入为 "C++, C#, JavaScript" 则输入出 "JavaScript"
function extractLast(term) {
return split(term).pop();
}
$('#' + textbox1ID + ' input').bind("keydown", function (event) {
// 通过 Tab 选择一项时,不会使当前文本框失去焦点
if (event.keyCode === $.ui.keyCode.TAB &&
$(this).data("autocomplete").menu.active) {
event.preventDefault();
}
}).autocomplete({
minLength: 0,
source: function (request, response) {
$.getJSON("./search.ashx", {
term: extractLast(request.term)
}, response);
},
search: function () {
// 自定义的minLength如果要限制两个字符才提示把下面的1改为2即可
var term = extractLast(this.value);
if (term.length < 1) {
return false;
}
},
focus: function () {
// 阻止某一项获得焦点时,更新文本框的值
return false;
},
select: function (event, ui) {
var terms = split(this.value);
// 移除用户正在输入项
terms.pop();
// 添加用户选择的项
terms.push(ui.item.value);
// 添加占位符,确保字符串的最后以逗号空格结束
terms.push("");
this.value = terms.join(", ");
return false;
}
});
});
</script>
</body>
</html>