标签技术,怎么在最后写入数据库的时候,知道用户选择了哪些标签?
我想在用户每次点击tag的时候,把值记录进一个隐藏域,然后删除这个tag的时候,再replace掉这个tag,最后写入数据库。
我面临的问题是,怎么在用户点击x时移除tag的同时,移除已经在隐藏域里的tag
移除标签的时候,怎么获取到,移除的是哪个标签呢?
//==================tags start
function tagdiv() {
$(".tag_div").click(function(e) {
var e = e || window.event;
var target = e.target || e.srcElement;
if ($(target).attr("data-role") == "remove") {
//点击x时移除标签
//added by yang 2016-04-10 start
var obj = $(target).parent().html();
alert(obj);
//added by yang 2016-04-10 end
$(target).parent().remove();
} else {
//div点击时
$(this).find("input").eq(0).focus();
}
});
}
$(function() {
//分类切换
$(".nav-tabs").click(function(e) {
var e = e || window.event;
var target = e.target || e.srcElement;
if (target.nodeName.toLowerCase() == "span") {
if (!$(target).parent().hasClass("crently")) {
$(".nav-tabs li").removeClass("crently");
$(target).parent().addClass("crently");
$(".nav_content p").eq($(target).parent().index()).show().siblings().hide();
//console.log();
}
}
});
//分类详细点击
$(".nav_content").click(function(e) {
var e = e || window.event;
var target = e.target || e.srcElement;
if (target.nodeName.toLowerCase() == "a") {
//判断字符是否在已选内容
//txt为当前点击的标签,includetxt为选中的标签
var txt = $(target).html();
//yang added on 2016-04-10 start
alert(txt);
//yang added on 2016-04-10 end
var includetxt = $(".tag_div").html();
if (includetxt.indexOf(txt) == -1 && $(".tag_div span").length < 5) {
$('<span> ' + $(target).html() + ' <i data-role="remove"></i></span>').insertBefore(".tag_input");
$(".tag_div").unbind();
tagdiv();
}
}
});
//隐藏 列表分类
$("body").click(function(e) {
var e = e || window.event;
var target = e.target || e.srcElement;
if ($(target).parents(".tag_list").length > 0 || $(target).parents(".tag_div").length > 0 || $(target).hasClass("tag_list") || $(target).hasClass("tag_div")) {
$(".tag_list").show();
//console.log("显示");
} else {
console.log($(".tag_list").attr("display") != "none");
if ($(".tag_list").attr("display") != "none")
$(".tag_list").hide();
//console.log("隐藏");
}
})
});
//==================tags end
][2]
最后通过document.setweb.submit()提交到ThinkPHP的时候,怎么把这个tag_selected数组提交上去?
要提交的表单的名字,通过document.setweb.submit()提交该表单。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
说一下思路:上面你不是和 @papersnake 讨论过了嘛,submit时获取相关信息,不需要隐藏域。
不论你添加了多少标签还是中途删除了哪些标签,都不干涉你最后的获取,以SF为例:
html结构如下:
标签区域一般来说都是一个内容块,div也好ul也好,剩下的就是把里面每个标签的值取出来,放在数组里面或者其他数据格式,传给后端就行了。
如果换我来处理 这样的问题,我想如果在onsubmit的时候 获取已选标签 处理会简单的多,
就是说,怎么在最终提交页面之前,获取到有哪些tag被选择了。。。
有没有最快,最直接的方法,能获取到哪些tag被选择了?