Jquery Tag-IT 允许中间有逗号
Jquery Tag-IT Allow Comma in the Middle
好的,事情就是这样。我们在控件上使用第 3 方控件 "tag-it"。
JQUERY TAG-IT
现在我们遇到了一个问题,我们需要允许用户粘贴两个单词的文本,然后在它们之间放置一个逗号。为了演示这是 tag-it 控件的当前行为:
- 用户粘贴"text sample"
- 用户在中间加上了逗号"text , sample"
- Jquery tag-it 将单词标记为 "text sample"
我想要的行为是这样的:
- 用户粘贴"text sample"
- 用户在中间加上了逗号"text , sample"
- Jquery tag-it 将单词标记为 "text" 和 "sample"
这可能吗?如果可以,我们如何实施?
如果您不使用缩小版,请编辑 tag-it.js
。
找到第 224 行,并在该行之前粘贴此代码块:
this.tagInput.bind('paste', function (event) {
// Set short timeout so .val() will have a value
setTimeout(function () {
var tagArray = that.tagInput.val().split(/[\n,]+/);
if (tagArray.length > 1) {
for (var i = 0; i < tagArray.length; i++) {
that.createTag(tagArray[i]);
}
}
}, 100);
});
所以基本上它所做的是绑定一个新的粘贴事件并用逗号分隔输入,并为分隔的项目创建一个新标签。
请参考这个github问题:
https://github.com/aehlke/tag-it/issues/301
不客气:) ---> 不客气...哈哈哈哈。
问题
如果您不粘贴值而只是手动输入逗号,那会怎么样?
编辑 2:另一种选择
还原我之前所做的所有更改。
删除第244行,(event.which === $.ui.keyCode.COMMA && event.shiftKey === false) ||
这是允许逗号输入
修改第270行,检查输入中是否有逗号
that.tagInput.autocomplete('close');
if ($.trim(that.tagInput.val()).indexOf(',') > -1) {
var tagArray = that.tagInput.val().split(/[\n,]+/);
if (tagArray.length > 1) {
for (var i = 0; i < tagArray.length; i++) {
that.createTag($.trim(tagArray[i]));
}
}
}
else {
that.createTag(that._cleanedInput());
}
说明:
由于我们允许空格(我假设)和逗号,现在创建标签的唯一触发器是按回车键。
例如:
输入:"Sample, Text"
在我按下 Enter 键后,它将被分成 "Sample" 和 "Text" 标签。
好的,事情就是这样。我们在控件上使用第 3 方控件 "tag-it"。 JQUERY TAG-IT
现在我们遇到了一个问题,我们需要允许用户粘贴两个单词的文本,然后在它们之间放置一个逗号。为了演示这是 tag-it 控件的当前行为:
- 用户粘贴"text sample"
- 用户在中间加上了逗号"text , sample"
- Jquery tag-it 将单词标记为 "text sample"
我想要的行为是这样的:
- 用户粘贴"text sample"
- 用户在中间加上了逗号"text , sample"
- Jquery tag-it 将单词标记为 "text" 和 "sample"
这可能吗?如果可以,我们如何实施?
如果您不使用缩小版,请编辑 tag-it.js
。
找到第 224 行,并在该行之前粘贴此代码块:
this.tagInput.bind('paste', function (event) {
// Set short timeout so .val() will have a value
setTimeout(function () {
var tagArray = that.tagInput.val().split(/[\n,]+/);
if (tagArray.length > 1) {
for (var i = 0; i < tagArray.length; i++) {
that.createTag(tagArray[i]);
}
}
}, 100);
});
所以基本上它所做的是绑定一个新的粘贴事件并用逗号分隔输入,并为分隔的项目创建一个新标签。
请参考这个github问题: https://github.com/aehlke/tag-it/issues/301
不客气:) ---> 不客气...哈哈哈哈。
问题 如果您不粘贴值而只是手动输入逗号,那会怎么样?
编辑 2:另一种选择
还原我之前所做的所有更改。
删除第244行,
(event.which === $.ui.keyCode.COMMA && event.shiftKey === false) ||
这是允许逗号输入
修改第270行,检查输入中是否有逗号
that.tagInput.autocomplete('close'); if ($.trim(that.tagInput.val()).indexOf(',') > -1) { var tagArray = that.tagInput.val().split(/[\n,]+/); if (tagArray.length > 1) { for (var i = 0; i < tagArray.length; i++) { that.createTag($.trim(tagArray[i])); } } } else { that.createTag(that._cleanedInput()); }
说明: 由于我们允许空格(我假设)和逗号,现在创建标签的唯一触发器是按回车键。
例如: 输入:"Sample, Text" 在我按下 Enter 键后,它将被分成 "Sample" 和 "Text" 标签。