jquery - x-editable - 提交后重置“新记录”

时间:2012-12-26 05:28:58

标签: php jquery html ajax forms

我一直试图弄清楚这几个小时无济于事。

我有以下

http://vitalets.github.com/x-editable/docs.html#newrecord

新记录模块/代码。它的功能是,一旦所有行都有它们的数据,并且它被提交,它就会保留它的值,以便它可以保持可编辑状态。

我尝试添加输入,在ajax请求成功时选择清除代码,并尝试将.editable函数放在ajaxComplete函数中,以查看它是否会在提交时重新加载元素,但它没有。看看演示。输入数据,然后提交。然后它使数据“永久”,以便它可以继续编辑。

我删除了隐藏按钮的代码。

我想要它做的是,提交记录并重置,以便我可以提交另一个表格为“空”并返回默认值。

我正在开发一种设备跟踪器,如果技术人员可以一个接一个地输入记录,我会很高兴。我确定它是一个简单的修复重置表单,我只是无法搞清楚。

我附上了它的截屏视频。

http://www.youtube.com/watch?v=dPDuQCgOOSw

2 个答案:

答案 0 :(得分:9)

因为这是一个很受欢迎的问题,我在文档中添加了重置按钮。

$('#reset-btn').click(function() {
    $('.myeditable').editable('setValue', null) //clear values
        .editable('option', 'pk', null)         //clear pk
        .removeClass('editable-unsaved');       //remove bold css

    $('#save-btn').show();
    $('#msg').hide();
});

最好使用.editable('setValue', null)代替.text('Empty'),因为我们还需要重置内部值。
HTH

答案 1 :(得分:0)

如果你看一下如何实现“保存新用户button”,它只会选择类名为myeditable

的锚标记

您可以将功能绑定到“重置”按钮,也可以使用此脚本onclick

IF onclick:

jQuery.each($('.myeditable'),function() { 
    $(this).text('Empty') ; //this is your default text
});

OR as a function

function reset_myeditable()
{
    jQuery.each($('.myeditable'),function() { 
        $(this).text('Empty') ; //this is your default text
    });
}

并将其附加到onclick按钮的reset处理程序 我假设您将放置一个“重置”按钮

修改

确定放大$('#save-btn').click(function() success handler

    success: function(data, config) {
    if(data && data.id) {  //record created, response like {"id": 2}

    $(this).editable('option', 'pk', data.id);
    //remove unsaved class
    $(this).removeClass('editable-unsaved');
    //show messages
    var msg = 'New user created! Now editables submit individually.';
    $('#msg').addClass('alert-success').removeClass('alert-error').html(msg).show();
    $('#save-btn').hide(); 
    $(this).off('save.newuser'); 

/**this the edited part**/
  jQuery.each($('.myeditable'),function() { 
     $(this).text('Empty') ; //this is your default text
  });
/**end of edit**/      

} else if(data && data.errors){ 
           //server-side validation error, response like {"errors": {"username": "username already exist"} }
           config.error.call(this, data.errors);
       }               
   },