updating x-editable input field based on returned

2019-05-11 12:09发布

问题:

in my x-editable field I have a textarea that I want to update based on the returned value. This works when I use $(this).html(newVal); as shown below

success: function(response, newValue) {
  newVal=unescape(JSON.parse(response).VALUE)
  $(this).html(newVal);
}  

the problem is when I click to edit the field the second time, the value inside the input object (class: editable-input) stays the same as it was when it was sent. Is there a way to fix this?

回答1:

the simplest way:

        $('.textarea').editable({
            success: function(response, newValue) {
                    return {newValue: response.newValue};
                }
            }
        });

remember to return newValue variable in response content:

{"newValue":"some_string_new_value"}


回答2:

this worked. I'm setting the value by calling this function in the on success callback

  function formatXEditable($item, $val){
    $val = $val.replace(/<br\s*\/?>/mg,"\n");
    $($item).on('shown', function(e, editable) {
      editable.input.$input.val($val);
    });
  }