2015-01-12 4 views
4

В настоящее время у меня есть форма, которую я использую в качестве страницы редактирования/редактирования. Вместо того, чтобы отправлять значения каждый раз, когда редактируется одно поле, я пытаюсь использовать кнопку сохранения, которая бы скомпилировала объект значений из формы и отправила их в базу данных. Проблема я бег в том, что, когда я пытаюсь получить значение в поле ввода, если поле ввода не редактировались, то значение, которое возвращается в «»X-Editable получить значение неотредактированного поля ввода

$('#view-contact-first-name').editable("getValue") 

Я попытался, глядя через й -editables и попытался использовать параметр savenochange: true, но это также не решило мою проблему. Кто-нибудь знает, что я могу делать неправильно. (При необходимости может отправить больше кода)

$('#view-contact-first-name').editable({ 
     type: 'text', 
     name: 'FirstName', 
     // url: '', 
     emptytext: "Enter First Name", 
     savenochange: true, 
     validate: { 
      view_contact_first_name: function (v) { if (v == '') return 'Required field!' } 
     }, 
     display: function() { 
      $(this).text(contact.FirstName); 
     } 
    }); 

ответ

3

То, что вы пытаетесь сделать, победит цель x-редактируемого.

Поскольку x-editable позволяет изменять только один вход за один раз, имеет смысл сохранить только, что значение ввода.

Ваше решение должно быть следующим, хотя и немного Hacky:

HTML

<div id="containAllEditable"><!-- lots of x-editable inputs inside --></div>

JS

$('#containAllEditable .editable').editable({ 
    type: 'text', 
    name: 'FirstName', 
    // url: '', 
    emptytext: "Enter First Name", 
    savenochange: true, 
    validate: { 
     view_contact_first_name: function (v) { if (v == '') return 'Required field!' } 
    }, 
    display: function() { 
     $(this).text(contact.FirstName); 
    }, 
}).on('save',function(){ 
    /* 
    * Event triggered when save is successful 
    */ 
    var dataJson; 
    $('#containAllEditable .editable').each(function(){ 
     /* We build a JSON list of all input found in the div */ 
     dataJson[$(this).attr('data-name')] = $(this).editable('getValue'); 
    }); 

    /* Do your ajaxy stuff and save all the form's variables */ 
    $.ajax({ 
     url:'url/to/saveform', 
     data: dataJson, 
    }) 
}); 
Смежные вопросы