2

我有的:

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

$.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();

    });
});

有什么问题:

如果用户输入空字符串,则验证失败。但是可编辑区域不会关闭,因此用户可以继续编辑下一条评论,而前一条的编辑区域仍然打开。

问题:

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

4

1 回答 1

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();

    });
});
于 2018-02-12T15:41:11.780 回答