X - редактируемый ввод, редактируемый при нажатии на другой элемент
У меня есть x-редактируемый ввод, который я использую для редактирования имен пользователей. Действие элемента по умолчанию, когда вы нажимаете на себя, вы можете изменить значение. Но я хочу включить щелчок на элементе .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 = '';
}
}
});
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>
Было бы неплохо, если кто-то может мне помочь и отредактировать связанный jsfiddle, как я описал. В щелчке .edit уметь редактировать значение.
Ответы
Ответ 1
У него есть функция, называемая enable, которую вы можете использовать, чтобы включить редактирование
$('.edit').click(function(e){
e.stopPropagation();
$('#publicname-change').editable('toggle');
});
Это не будет работать, если вы не добавите первую строку, потому что поведение по умолчанию - отключить редактирование при щелчке любого другого элемента.
Edit:
Чтобы включить редактирование только нажатием кнопки редактирования, а не текстом, установите для свойства toggle
значение manual
.
$('#publicname-change').editable({
type: 'text',
url: '/post',
pk: 1,
placement: 'top',
title: 'Enter public name',
toggle:'manual'
}
JSFiddle