簡體   English   中英

將先前的可編輯值發送到服務器

[英]Send previous xeditable value to the server

我正在使用https://vitalets.github.io/x-editable/docs.html作為選擇元素。 除了將新值發送到服務器(即s,p)之外,我還要發送先前的值(即b)。 下面的腳本最初會這樣做,但是即使多次更改並且新的先前值不再是p,也只會發送原始值(即p)。

<a href="javascript:void(0)" class="doc-type" data-value="b"></a>

$('.doc-type').editable({
    type: 'select',
    placement: 'right',
    title: 'Document Type',
    source: [{value:'b',text:'Buy'},{value:'s',text:'Sell'},{value:'p',text:'Project'}],
    //params: {task:'saveDocType',controller:'portal',cid:ayb.component.id,CSRF:ayb.CSRF,doc_id:function(){console.log(this);}},
    params: function(params) {
        //originally params contain pk, name and value
        delete(params.name);
        params.task = 'saveDocType';
        params.controller = 'portal';
        params.cid = ayb.component.id;
        params.CSRF = ayb.CSRF;
        params.doc_id=$(this).parent().parent().data('id');
        params.v_old=$(this).data('value');
        return params;
    },
    url: 'index.php',
    pk: function(){return $('#id').val();},
    error: function (response, newValue) {
        //Unlike other validation, save function to return non 200 header.
        return response.responseText;
    },
});

我希望有更好的方法,但是一種選擇是將newValue保存在成功回調中。

$('.doc-type').editable({
    type: 'select',
    source: [{value:'b',text:'Buy'},{value:'s',text:'Sell'},{value:'p',text:'Project'}],
    params: function(params) {
        //originally params contain pk, name and value
        params.v_old=$(this).data('value');
        return params;
    },
    url: 'index.php',
    pk: function(){return $('#id').val();},
    success: function(response, newValue) {
        $(this).data('value',newValue)
    }
});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM