- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用http://aehlke.github.io/tag-it/用于标记,但当自动完成功能出现并且您按 Enter 或 Tab 时,我很难添加值。如果我使用鼠标,我可以轻松选择一个值,如下所示:
然后单击正确选择的值:
但是,如果我使用回车键,它只会根据我到目前为止输入的文本添加标签......例如,假设我想添加“tryme”作为标签,所以我开始输入 try,然后使用键盘上的光标并选择我想要的值,然后按 Enter 键,最终结果如下:
之前:
然后我按 Enter,我得到“try”而不是“tryme”:
这是我的代码:
var entityId = '<%=(int)Module.Company%>'; //parameter for web service.
$("#MainContent_txtTags").tagit({
singleField: true,
singleFieldDelimiter: " ",
autocomplete: ({
delay: 0,
minLength: 1,
source: function(request, response) {
$.ajax({
type: "POST",
contentType: "application/json; charset=utf-8",
url: "/Code/WebServices/Tags.asmx/GetTags",
dataType: "json",
data: '{"entityId":"' + entityId + '","search":"' + request.term + '"}',
success: function(data) {
response($.map(data.d, function(item) {
return {
label: item.TagName,
value: item.TagName
}
}));
}
});
},
open: function() {
$(this).removeClass("ui-corner-all").addClass("ui-corner-top");
},
close: function() {
$(this).removeClass("ui-corner-top").addClass("ui-corner-all");
},
error: function(XMLHttpRequest, textStatus, errorThrown) {
alert(textStatus);
},
search: function(event, ui) {
$(this).addClass('autocompleteloading');
// custom minLength
var term = extractLast(this.value);
//alert(term);
if (typeof(term) !== 'undefined') {
if (term.length < 1) {
return false;
}
}
return true;
},
select: function(event, ui) {
alert("hi");
},
focus: function() {
// prevent value inserted on focus
return false;
},
response: function() {
$(this).removeClass('autocompleteloading');
}
})
});
我尝试使用选择事件,但只有当我使用鼠标时才会触发。如何使用此库处理 Enter/Tab 键?
//tagging
//to clear
var entityId = '<%=(int)Module.Company%>'; //parameter for web service.
var availableTags = [];
$("#MainContent_txtTags").tagit({
singleField: true,
singleFieldDelimiter: " ",
autocomplete: ({
delay: 0,
minLength: 1,
// autoFocus: true,
source: function(request, response) {
$.ajax({
type: "POST",
contentType: "application/json; charset=utf-8",
url: "/Code/WebServices/Tags.asmx/GetTags",
dataType: "json",
data: '{"entityId":"' + entityId + '","search":"' + request.term.toLowerCase() + '"}',
success: function (data) {
availableTags = [];
response($.map(data.d, function (item) {
availableTags.push(item);
return {
label: item.TagName,
value: item.TagName
}
}));
}
});
},
open: function() {
$(this).removeClass("ui-corner-all").addClass("ui-corner-top");
},
close: function() {
$(this).removeClass("ui-corner-top").addClass("ui-corner-all");
},
error: function(XMLHttpRequest, textStatus, errorThrown) {
alert(textStatus);
},
search: function(event, ui) {
$(this).addClass('autocompleteloading');
// custom minLength
var term = extractLast(this.value);
//alert(term);
if (typeof(term) !== 'undefined') {
if (term.length < 1) {
return false;
}
}
return true;
},
select: function(event, ui) {
},
focus: function() {
// prevent value inserted on focus
return false;
},
response: function() {
$(this).removeClass('autocompleteloading');
}
}),
beforeTagAdded: function (evt, ui) {
// If tag is incomplete..
if ($.inArray(ui.tagLabel, availableTags) == -1) {
var $tagdropdowns = $('body ul:last li a');
// Add the selected tag (if there) from dropdown.
var $activeTag = $tagdropdowns.filter(function () { return $(this).is(":hover") });
if ($activeTag.length) {
$(this).tagit("createTag", $activeTag.text());
// Otherwise add the first tag from the dropdown.
} else {
$(this).tagit("createTag", $tagdropdowns.first().text());
}
// Stop adding incomplete tag.
return false;
}
}
});
最后谢谢香蕉(下面的回答者):
//tagging
//to clear
var entityId = '<%=(int)Module.Company%>'; //parameter for web service.
var callBeforeTagAdded = true;
$("#MainContent_txtTags").tagit({
singleField: true,
singleFieldDelimiter: " ",
autocomplete: ({
delay: 0,
minLength: 1,
// autoFocus: true,
source: function (request, response) {
$.ajax({
type: "POST",
contentType: "application/json; charset=utf-8",
url: "/Code/WebServices/Tags.asmx/GetTags",
dataType: "json",
data: '{"entityId":"' + entityId + '","search":"' + request.term.toLowerCase() + '"}',
success: function (data) {
response($.map(data.d, function (item) {
return {
label: item.TagName,
value: item.TagName
}
}));
}
});
},
open: function () {
$(this).removeClass("ui-corner-all").addClass("ui-corner-top");
},
close: function () {
$(this).removeClass("ui-corner-top").addClass("ui-corner-all");
},
error: function (XMLHttpRequest, textStatus, errorThrown) {
alert(textStatus);
},
search: function (event, ui) {
$(this).addClass('autocompleteloading');
// custom minLength
var term = extractLast(this.value);
//alert(term);
if (typeof (term) !== 'undefined') {
if (term.length < 1) {
return false;
}
}
return true;
},
response: function () {
$(this).removeClass('autocompleteloading');
}
}),
beforeTagAdded: function (evt, ui) {
// If tag is incomplete.
var $tagdropdowns = $('body ul:last li a');
// Add the selected tag (if there) from dropdown.
var $activeTag = $tagdropdowns.filter(function () {
return $(this).hasClass("ui-state-focus");
});
$tagdropdowns.removeClass('ui-state-focus');
if ($activeTag.length && callBeforeTagAdded) {
$("#MainContent_txtTags").tagit("createTag", $activeTag.text());
callBeforeTagAdded = false;
return false;
// Otherwise add the first tag from the dropdown.
} else {
callBeforeTagAdded = true;
}
}
});
最佳答案
默认情况下,tab 和 enter 都会插入使用箭头键选择的标签。您必须删除以下代码,因为它会覆盖默认焦点并选择选项:
select: function(event, ui) {
},
focus: function() {
// prevent value inserted on focus
return false;
},
此外,您可以使用 beforeTagAdded:
添加按 enter 或 tab 时处于焦点的标签(由于鼠标悬停) >:
(...)
$("#MainContent_txtTags").tagit({
(...)
beforeTagAdded: function(evt, ui) {
var $tagdropdowns = $('body ul:last li a');
var $activeTag = $tagdropdowns.filter(function() {
return $(this).hasClass('ui-state-focus')
});
$tagdropdowns.removeClass('ui-state-focus');
if ($activeTag.length) {
$(this).tagit("createTag", $activeTag.text());
return false;
}
}
});
关于javascript - 按 Tab 或 Enter 时如何在自动完成中添加值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24698005/
如果你有一个字符串,假设:AB--AB .我想寻找带有 xpath 的节点,它可以是 AB??AB , 这意味着节点属性中的问号是某种占位符 - 它们的出现次数可能会有所不同,因此它也应该匹配到 AB
我的python版本是2.7.6 我知道 +? 是 + 的非贪婪版本。 这样 re.findall('(ab)+?', 'abab') 将匹配尽可能少的 ab。 结果 ['ab', 'ab'] 因此有
typedef struct unit { struct unit * next; int year; int month; int day; struct unit revisions[3]; ch
特别是 Sql Server 2005/T-Sql。我有一个主要由两个字符组成的字段,它们都应该是大写的,但是有一些遗留数据早于当前的数据库/系统,我需要弄清楚哪些记录违反了大写套管契约。 我认为这会
在 python 中有什么区别: abs(a) 和 operator.abs(a) 它们非常相似,工作方式也相似。如果它们完全相同,那么为什么要制作两个独立的函数来做同样的事情? 如果其中任何一个有一
小心,我说的是::abs() ,而不是 std::abs() 根据cplusplus.com website , abs stdlib. 的行为应该不同h C 版本,如果包含 这是此页面的摘录(涉及
假设我们有数字 81,我们将它分开:8 和 1。如果我们得到这个数字的总和,它将是 9,对吧?让我们检查一下 9 的任意幂是否为 81。是的,9 的平方为 81。 我想找到所有这些数字,直到达到 10
我在postgresql有点情况 我有两个表 t1 和 t2,并且都有一个列具有相同类型的数据“col_data”,col_data 可能只有以下数据 ('ab', 'cd', 'ab,cd', 'c
这个问题在这里已经有了答案: Can we instantiate an abstract class? (16 个答案) 关闭 9 年前。 我有一个关于抽象类的问题。 首先......我正在使用谷
我的问题听起来可能很愚蠢,但我必须在准备学士考试时回答这个问题。 那么,您如何看待 C++ 中的表达式 'ab' == "ab"?这不是真的还是根本不合法和编译错误?我在谷歌上搜索了一下,了解到“ab
我有一个表格,其中填充了某些值,例如 | CODE | NAME | NB: THIS IS A VERY BASIC EXAMPLE | zygnc | oscar alpha |
This question already has answers here: Reference - What does this regex mean?
我正在检查 TypeScript 规范并在某个时间点查看 3.4 Union Types它使用 AB 如下: 一个 |如果 B 是 A 的子类型,则 B 等同于 A。 一个 | B 等同于 B | A
这个问题在这里已经有了答案: What is the difference between .*? and .* regular expressions? (3 个答案) 关闭 7 年前。 +? 匹
下面是我遇到问题的代码。 avg += abs(num) 行有错误,但我无法解决。错误代码: error: call of overloaded 'abs(double&)' is ambigous
我有一个 Java 方法,它在一个非常紧凑的循环中重复计算以下表达式,并有大量重复: Math.abs(a - b) - Math.abs(c - d) a、b、c 和 d 是 long 值,可以跨越
我有一个 .bin 文件,我想对十六进制数据进行简单的字节反转。例如说 @ 0x10 它读取 AD DE DE C0,希望它读取 DE AD C0 DE。 我知道有一种简单的方法可以做到这一点,但我是
我目前正在用 C++ 编写一些类似于 vector 数学类的 glsl,并且我刚刚实现了一个 abs() 函数,如下所示: template static inline T abs(T _a) {
我正在尝试 ab 测试旋风。 当我跑 ab -n 2000 -c 25 http://127.0.0.1 我得到 ab:无效的 URL。 嗯...当我在我的开发机器上访问 ff 时,该站点就在那里。
我有一个 Swift 文件,我在其中导入了 Foundation 和 CoreGraphics,但是在我调用 abs(x) 的地方,其中 x 是一个 CGFloat,我收到此警告: abs is de
我是一名优秀的程序员,十分优秀!