X - 可编辑输入在单击其他元素时可编辑

dzo*_*rdz 21 javascript jquery twitter-bootstrap x-editable

我有一个x-editable输入,我用它来编辑用户名.元素的默认操作是单击自身时,可以编辑值.但是我想启用点击元素的.editable并能够编辑输入中的值.为了缩短在这里的东西是一个的jsfiddle我目前的状况.

jQuery的:

$(function(){
  $.fn.editable.defaults.mode = 'inline';
  $('#publicname-change').editable({
    type: 'text',
    url: '/post',
    pk: 1,
    placement: 'top',
    title: 'Enter public name'
  }
);

//ajax emulation. Type "err" to see error message
$.mockjax({
  url: '/post',
  responseTime: 100,
  response: function(settings) {
    if(settings.data.value == 'err') {
      this.status = 500;
      this.responseText = 'Validation error!';
    } else {
      this.responseText = '';
    }
  }
}); 
Run Code Online (Sandbox Code Playgroud)

HTML:

<div class="control-group control-group-inline">
  <label class="control-label labelModified" for="publicname-change">Public name:</label>
  <div class="controls">
    <a href="#" id="publicname-change" class="editable editable-click inline-input">Mr.    Doe</a>
    <div class="edit">edit <i class="icon-pencil pencil-input-change"></i></div>
  </div>
</div>
Run Code Online (Sandbox Code Playgroud)

如果有人可以按照我描述的方式帮助我并编辑链接的jsfiddle,那将是很好的.点击.edit,可以编辑值.

bit*_*kot 48

它有一个名为enable的函数,您可以使用它来启用编辑

$('.edit').click(function(e){    
       e.stopPropagation();
       $('#publicname-change').editable('toggle');
});
Run Code Online (Sandbox Code Playgroud)

如果您不添加第一行,这将无效,因为默认行为是在单击任何其他元素时禁用编辑.

编辑:

要仅在单击编辑按钮而不是文本时启用编辑,请将toggle属性设置为manual.

$('#publicname-change').editable({
    type: 'text',
    url: '/post',
    pk: 1,
    placement: 'top',
    title: 'Enter public name',
    toggle:'manual'
}
Run Code Online (Sandbox Code Playgroud)

的jsfiddle