X可编辑的动态数据-pk值

时间:2017-04-04 18:22:56

标签: jquery x-editable

我有一个X-editable正在从data-pk属性中设置字段的元素。

 <button class='edit' data-pk='field|value'>My Button</button>

我正在动态更新此按钮,另一个下拉列表。因此,data-pk会更新到我从下拉列表中选择的任何字段。

DOM按预期更新。

但是,当X-editable触发请求时,它是旧的第一个启动的data-pk值。 在发送到服务器之前,如何让它读取当前值?

X-editable代码是......

$('.edit').editable({
  url:'user/edit',
  // Need something here to retrieve the real current value of data-pk.  
  // not initiated value
  success:function(response,value){
       // Do success stuff.
 }
});

我试过......

 $('.edit').editable({
  url:'user/edit',
  pk:$(this).attr('data-pk'),
  success:function(response,value){
 }
});

但那不起作用,也试过......

 $('.edit').editable({
 url:'user/edit',
 params:function(params){
    var data={};
    // Need to get this instance, and fetch the current data-pk
    // So I can set it in this data, but I have no idea how to get it.
    // params.pk just gives me the old value.  I need to get the new value
    return data;
 },
 success:function(response,value){
   // Do success stuff.
 }
 });

2 个答案:

答案 0 :(得分:2)

就我而言

<span class="editable" data-type="text" data-pk="100" data-value="Value" data-language-option="turkish">Value</span>

    $('.editable').editable({
    params: function(params) {
        params.en = 'en';
        params.LanguageOption = $(this).data("language-option");
        return params;
    },
    success: function (response, newValue) {
        if(response != "OK")
            alert(response);
    }
});

答案 1 :(得分:1)

经过一段时间的游戏,这是解决方案。

$('.edit').editable({
 url:'user/edit',
 params:function(params){
    params.pk = $(this).attr('data-pk');
    return params;
 },
 success:function(response,value){
   // Do success stuff.
 }
});