X-editable:验证失败时关闭编辑区域

时间:2013-11-14 10:27:07

标签: javascript twitter-bootstrap x-editable

我拥有的内容:

某些页面中有多条评论。每个用户都可以修改他的所有评论。

$.each(comments, function() {
    this.editable({
        type: 'textarea',
        mode: 'inline',
        onblur: 'submit',
        showbuttons: false,
        inputclass: 'edit-comments-text-input',
        validate: function(value) {
            if (!value.trim()) {
                return 'Can not be empty!'; //DON'T CLOSE THE EDITABLE AREA!!!
            }
        },
        success: function(response, newValue){        
            comment.text = newValue.trim();

    });
});

出了什么问题:

如果用户输入空字符串,则验证失败。但是可编辑区域不会被关闭,因此用户可以继续前进并编辑下一个评论,并保留前一个评论区域。

问题:

如何在验证失败时关闭编辑文本区域?

1 个答案:

答案 0 :(得分:0)

我读了一些源代码,然后把它排序了。

重要的一点是:

$('.editable-open').editableContainer('hide', 'cancel');

所以在上面的例子中,这将是:

$.each(comments, function() {
    this.editable({
        type: 'textarea',
        mode: 'inline',
        onblur: 'submit',
        showbuttons: false,
        inputclass: 'edit-comments-text-input',
        validate: function(value) {
            if (!value.trim()) {
                $('.editable-open').editableContainer('hide', 'cancel');
                return 'Can not be empty!'; //DOES NOW CLOSE THE EDITABLE AREA!!!
            }
        },
        success: function(response, newValue){        
            comment.text = newValue.trim();

    });
});