使用Jquery Tabs通过ajax传递变量
我有一个问题,我已经坚持了几天,我似乎无法弄明白。 我正在尝试使用Jquery Tabs通过AJAX传递变量。
这是我的使用场景:用户使用JQuery选项卡加载页面,默认只是一些文本。 在页面上,我有一个包含userid的会话变量。 当他们单击第二个选项卡时,它会将该userid变量传递给脚本。 我无法通过!
var postData = {}; $("#tabs").tabs({ select: function(event, ui) { postData = { userid: parseInt($(ui.tab).data('userid')); }; }, ajaxOptions: { type: 'POST', data: postData, error: function(xhr, status, index, anchor) { $(anchor.hash).html("Couldn't load this tab. We'll try to fix this as soon as possible. " + "If this wouldn't be a demo."); } } }); Text information goes here
我在IE和Firefox中尝试了一个测试代码,它似乎工作得很好。
的test.html
jQuery UI Example Page Text information goes here
This is my department page.
我在前两行进行了更改(变量声明:修改了postData并添加了一个新变量来保存userid值)。 修改了分配给“选择”的function。 这似乎正在起作用,因为我能够通过ajaxOptions的“错误”function中的警报来validation用户ID。
希望这可以帮助。 如果没有,请告诉我。
更改您的选择function以设置ajaxOptions。
select:function(event, ui) { $("#tabs").tabs("option", "ajaxOptions",{ type: 'POST', data: {userId:$(ui.tab).data('userid')}, error: function(xhr, status, index, anchor) { $(anchor.hash).html("Couldn't load this tab. We'll try to fix this as soon as possible. " + "If this wouldn't be a demo."); } }) },
最初定义ajaxOptions时,它会将此值用于任何后续请求。 但由于某种原因,它没有得到当前的价值。 我甚至尝试在select上更改userId,但无法修改它。 他们可能正在克隆价值,我不确定。 无论如何,如果你在请求之前设置ajaxOptions,它将发送你想要的。
对不起半个回答,但我不能放手。 关于这个问题+1。 我不得不做一些研究,弄清楚它为什么不起作用。
注意:您可能已经知道这一点,但您必须在服务器上运行才能进行POST。 POST到本地文件系统将生成错误。