我正在使用以下 tagit 插件 http://webspirited.com/tagit/
这是我试图测试这个插件的 html 页面的代码片段 - 用户在其中键入标签
<input class="text_field" type="text" size="72" id="question_title"/>
<textarea id="question"></textarea>
<ul id="demo3" class="tagit">
<li class="tagit-choice">apple orange<a class="tagit-close">x</a></li>
<li class="tagit-new"><input class="tagit-input ui-autocomplete-input" type="text" autocomplete="off" role="textbox" aria-autocomplete="list" aria-haspopup="true"></li>
<ul class="ui-autocomplete ui-menu ui-widget ui-widget-content ui-corner-all" role="listbox" aria-activedescendant="ui-active-menuitem" style="z-index: 1; top: 0px; left: 0px; display: none;"></ul></ul>
<input id="question_submit" type="submit" value="Ask Question"/>
现在,当用户单击“提问”按钮时 - 会发生以下 ajax 调用
$("#question_submit").live('点击',function(e) { e.preventDefault(); var question_val = $("#question").val(); var question_title = $("#question_title").val(); var tags = $("#demo3").tagit("tags"); var s =''; for(标签中的变量 i) s += tags[i].label + " : " + tags[i].value + "\r\n"; 警报; $.post('/course/ask-question', {question: question_val,question_title: question_title,tags:tags}, function(data) { 如果(data.success=="ok") { $("div#wall").prepend(data.question); } },"json"); });
所以在这个函数中我可以得到标签
var tags = $("#demo3").tagit("tags");并遍历它们并打印每个标签的标签和值。
现在,当我尝试通过 $.post 将它传递给我的 PHP 控制器时 - 它不起作用 - 我的意思是如果我在调用 ask-question 函数时删除数据标签:标签它工作正常 - 但是当我添加它时 -好像没有调用该函数一样。
有没有一种特殊的方法可以将此标签对象传递给 PHP ?
编辑在 Chrome 开发人员工具中 - 当我提交表单同时保留标签:数据中的标签时 - 我收到以下错误
未捕获的类型错误:非法调用 jquery-1.6.4.min.js:4 e jquery-1.6.4.min.js:4 通过 jquery-1.6.4.min.js:2 通过 jquery-1.6.4.min.js:2 通过 jquery-1.6.4.min.js:2 通过 jquery-1.6.4.min.js:2 通过 jquery-1.6.4.min.js:2 通过 jquery-1.6.4.min.js:2 通过 jquery-1.6.4.min.js:2 (匿名函数)jquery-1.6.4.min.js:2 e.extend.each jquery-1.6.4.min.js:2 通过 jquery-1.6.4.min.js:2 f.extend.param jquery-1.6.4.min.js:4 f.extend.ajax jquery-1.6.4.min.js:4 f.(匿名函数)jquery-1.6.4.min.js:4 (匿名函数) course-feed.js:51 l jquery-1.6.4.min.js:2 f.event.handle jquery-1.6.4.min.js:3 i.handle.k
感谢您的帮助 谢谢