2013-06-03 11 views
16

Mam x edytowalne dane wejściowe, których używam do edycji nazw użytkowników. Domyślną akcją tego elementu jest kliknięcie, możesz edytować wartość. Ale chcę włączyć kliknięcie elementu .editable i móc edytować wartość wewnątrz mojego wejścia. Aby skrócić rzeczy tutaj jest a jsfiddle z mojej obecnej sytuacji.X - edytowalne dane wejściowe edytowalne po kliknięciu na inny element

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> 

Byłoby miło, jeśli ktoś może mi i zmienił mój związane jsfiddle w sposób opisałem pomóc. Po kliknięciu .edit, możesz edytować wartość.

Odpowiedz

40

Posiada funkcję o nazwie umożliwiają można używać, aby umożliwić edycję

$('.edit').click(function(e){  
     e.stopPropagation(); 
     $('#publicname-change').editable('toggle'); 
}); 

To nie będzie działać, jeśli nie dodać pierwszą linię, ponieważ domyślne zachowanie jest wyłączenie zmienił kliknięciem każda inna element.

Edit:

Aby umożliwić edycję tylko na kliknięcie przycisku Edytuj, a nie tekstu, należy ustawić toggle właściwość manual.

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

JSFiddle

+0

dzięki, ale nie udało mi się go rozwiązać ... coulde pan tak uprzejmy i edytować go w moim jsfiddle? http://jsfiddle.net/jjdJX/ – dzordz

+1

Właśnie zaktualizowałem jsfiddle, sprawdź to, nie wiem jak działa jsfiddle, tutaj jest link http://jsfiddle.net/jjdJX/1/ – bitkot

+0

Mam inny problem ... Może mógłbyś mi pomóc, więc nie pytam o inne pytanie na stackoverflow. Chcę to zrobić, gdy kliknięta zostanie .edit, zostanie ukryta ... – dzordz

Powiązane problemy