Дело в том что вы вешаете событие change каждый раз когда срабатывает событие dblclick.  Вариантов два, либо снимать событие по окончанию редактирования, либо изначально вешать только один раз (вне функции).
Снимаем событие:
$(".inputs_client").bind('dblclick', function() {
            $(this).css("backgroundColor", "red");
            $(this).css("color", "white");
            var textbefore = $(this).attr('value');
            this.readOnly = false;
            $(this).bind('change.myEvent', function() {
                    if (!confirm('Вы уверены?')) {
                        $(this).attr('value', textbefore);
                        textbefore = null;
                    } else {
                        $(this).attr('value', this.value);
                        textbefore = null;
                    }
                    $(this).unbind('change.myEvent');
                });
        });
        $(".inputs_client").bind('blur', function() {
            this.readOnly = true;
            $(this).css("backgroundColor", "white");
            $(this).css("color", "black");
        });
Вешаем один раз:
$(".inputs_client").bind('dblclick', function() {
            $(this).css("backgroundColor", "red");
            $(this).css("color", "white");
            $(this).data('textbefore', $(this).attr('value'));
            this.readOnly = false;
        });
        $(".inputs_client").bind('blur', function() {
            this.readOnly = true;
            $(this).css("backgroundColor", "white");
            $(this).css("color", "black");
        });
$(".inputs_client").bind('change', function() {
                    if (!confirm('Вы уверены?')) {
                        $(this).attr('value', $(this).data('textbefore'));
                        textbefore = null;
                    } else {
                        $(this).attr('value', this.value);
                        textbefore = null;
                    }
                });
Примерно так.