【发布时间】:2014-05-28 19:37:42
【问题描述】:
对于这个特定的问题,我正在使用 Tag-it https://github.com/aehlke/tag-it,这是一个专门用于使用标签的 jQuery 插件
我有一个标签列表,我正在使用 ajax 使用 jQuery ui 自动完成来填充
我需要做的是在ajax调用返回false时向特定函数BeforeTagAdded发出return false,本质上是说数据库拒绝了这个标签条目,不在客户端浏览器中显示标签
开发人员声明“为了澄清,只需在回调中返回 false 即可拒绝标签。”这就是我想要实现的目标
除了以下代码之外我还尝试过:
- 将结果全局化到一个变量中,然后让ajax把结果放进去,只返回未定义的
- 使用 return false 或 event.preventDefault() + stopPropagation() 的组合
- 使用 ajax 调用的 done 或 complete 方法
ajax 调用返回的唯一内容是 result:true 或 result:false 同时,除了以下代码之外,我还将编写一个 jsfiddle
beforeTagAdded: function(event, ui) {
if ( !ui.duringInitialization){ //do not fire on page initialization
$.ajax({
url: "handlers/tags.ashx",
dataType: "json",
data: {
idnumber: entity_id,
tag: ui.tagLabel,
operation:"tag"
}
}).done(function(data){
if(data.result == false){
event.preventDefault();
event.stopPropagation();
}
}).complete(function(data){
});
}
},
【问题讨论】:
-
您阻止默认操作为时已晚。当 done 回调发生时,事件默认动作已经发生。
标签: javascript jquery ajax tag-it