X-Editable获取未编辑的输入字段的值

时间:2015-01-12 15:24:29

标签: jquery x-editable

我目前有一个表单,我用作查看/编辑联系页面。我没有在每次编辑单个字段时提交值,而是尝试使用保存按钮,该按钮将从表单中编译值对象并将其提交到数据库。我遇到的问题是,当我尝试获取输入框的值时,如果该输入字段尚未编辑,则返回的值为“”

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

我尝试查看x-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);
        }
    });

1 个答案:

答案 0 :(得分:3)

你想要做的事情会破坏x-editable的目的。

由于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,
    })
});