Появляются лишние данные как поправить?

377
16 мая 2017, 04:30

Нужна помощь! Есть поля карточки клиента. Нажимаешь на нужную информацию вместо нее подставляется input и можно редактировать. Все работало пока не начал подключать DaData.ru и получается вот такая (см. картинку) беда.

Код:

$(document).ready(function(){
                                var rapture = function (which) {
                                    $(which).contents().filter(function() {
                                        return this.nodeType === 3;
                                    })
                                    .wrap('')
                                    .end()
                                        .filter('br') // убираем элементы переноса строки <br>
                                            .remove()
                                        .end()
                                            .end()
                                            .children().filter(function() {
                                                $(this).html($.trim($(this).html().replace(/(\t|\n)/g,"")));
                                                return !$(this).text().length
                                            }).remove();
                                }
                                $('.editable, .editable-area')
                                    .hover(function() {
                                        $(this).toggleClass('over-inline'); // добавляем эффект для обозначения области редактирования
                                    })
                                    .click(function(event) { // событие click, возникающее при клике на редактируемом содержимом
                                        var $editable = $(this); // получаем ссылку на редактируемый элемент, и сохраняем ее в переменную
                                        if($editable.hasClass('active-inline')) { // проверяем имеет ли элемент класс active-inline
                                            return;
                                        }
                                        var contents = $.trim($editable.html().replace(/\/p>/g,"/p>\n\n")); // удаляем лишние пробелы в начале и конце строки
                                        $editable
                                            .addClass('active-inline') // добавляем элементу класс active-inline - редактирование не закончено и позволяет стилизовать вводимый текст
                                            .empty(); // очищаем текущий элемент, всех его потомков.

                                        // опребеляем какой элемент формы мы должы подставить заместо редактируемого элемента
                                        if ($editable.hasClass('editable')) {var editElement = '<input type="text" id="'+$editable.attr('data-id-input')+'"/>';}
                                        // заменяем таргет элементом формы
                                        $(editElement)
                                            .val(contents)
                                            .appendTo($editable)
                                            .focus()
                                            .blur(function(event) {
                                                $editable.trigger('blur');
                                            });

                                                    if ($editable.attr('data-id-input') == 'name_contact') {suggestion("NAME");}
                                                    if ($editable.attr('data-id-input') == 'email_contact') {suggestion("EMAIL");}
                                                    if ($editable.attr('data-id-input') == 'address_contact') {suggestion("ADDRESS");}
                                                    // function DADATE.RU
                                                    function suggestion(suggestions_type){
                                                        $("#"+$editable.attr('data-id-input')+"").suggestions({
                                                            token: "ae1b7ce1d85f5b9cb54fca0af82f18e97cfcc40a",
                                                            type: ""+suggestions_type+"",
                                                            count: 5,
                                                            /* Вызывается, когда пользователь выбирает одну из подсказок */
                                                            //onSelect: function(suggestion) {
                                                            //  console.log(suggestion);
                                                            //}
                                                        });
                                                    }
                                                    // function DADATE.RU
                                    })      
                                    .blur(function(event) { // событие blur, возвещающее о завершении редактирования.
                                        var $editable = $(this);
                                        var edited = $editable.find(':first-child').val();
                                        if (edited !== '') {
                                            $editable.children().replaceWith('<em class="ajax">сохранение ... </em>').delay(2000).fadeOut('fast'); // ставим "сохранить..." вместо поля редактирования
                                            // сохраняем посредством post 
                                            var LeadsParam = {
                                                    id: $editable.attr('id'),
                                                    id_order: <? echo $_GET['edit'] ?>,
                                                    id_staff: <? echo $userdata['id_staff'] ?>,
                                                    id_cabinet: <? echo $id_cabinet ?>,
                                                    value: edited
                                            };
                                            jQuery.ajax({
                                                type: "post",
                                                url: "/update_order.php?vid=leads",
                                                data: LeadsParam,
                                                dataType: 'json', 
                                                success: function(data) {
                                                    if ($editable.hasClass('editable')) {                                                   
                                                        $editable
                                                        .removeClass('active-inline')
                                                        .children()
                                                        .replaceWith(data.answer);
READ ALSO
Как зациклить анимацию (setInterval)

Как зациклить анимацию (setInterval)

Пишу себе велосипед, кубик должен бесконечно двигаться вправо и возвращатьсяПроисходит только 1 итерация

439
Не фиксировать определенный option в select

Не фиксировать определенный option в select

ЗдравствуйтеМой селект обрабатывается js

314
Uncaught SyntaxError: Unexpected end of JSON input

Uncaught SyntaxError: Unexpected end of JSON input

На сайте в консоли браузера возникает ошибка:

880