发送GET数据的就地编辑问题

时间:2009-07-06 06:24:59

标签: javascript jquery

$('.textedit').editable('/challenge/skeleton/textedit/textedit/process', {
    loadurl: '/challenge/skeleton/textedit/textedit/loadraw',
    loaddata: {id: $(this).attr('id'), client: $(this).data('client')},
    submitdata: {id: $(this).attr('id'), client: $(this).data('client')},
    ....
});

$('#textedit_footer').data('client', 5);
$('#textedit_home1').data('client', null);
$('#textedit_test').data('client', 3);
$('#textedit_userCreate').data('client', null);

我的问题在于发送GET数据。 'id'数据被正确发送,但'client'数据却没有。我认为我使用data()的方法不对,但不能指责它。有什么建议?或者有关如何以更好的方式做到这一点的任何建议?以下是其中一个div的示例:

<div class="textedit" id="textedit_home1">
<p>test</p>
</div>

所有.textedit元素都是可编辑的功能。当提交数据(在submitdata和loaddata中指定)时,应该将两个数据包发送到服务器,以便它知道如何处理它:第一个是就地编辑的id,它被存储为id元素(这部分有效)。我称之为“客户”的第二条数据。我能想到浏览器通过data()知道哪些元素具有哪个客户端的唯一方法。但是我的实施不起作用的一些原因。 “客户”数据很简单,没有发送,这就是错误的。

1 个答案:

答案 0 :(得分:1)

修改后的答案......

当你创建闭包时,如果你碰巧稍后设置它不会影响submitdata xhr调用,则该值为null,因为由于缺少更好的单词,数据已经被“关闭”。它不会在发送时评估数据('客户')。

更新

查看插件,你可以像这样做

$(".editable").editable("http://www.example.com/save.php";, {
   submitdata : getData
});

function getData(){
       return {id: $(this).attr('id'), client: $(this).data('client')}
}