sisyphus icon indicating copy to clipboard operation
sisyphus copied to clipboard

It does not work if you call 2 times

Open sergey-kukosh opened this issue 9 years ago • 4 comments

Hi. I am using Ajax load the form in a modal window, and call the function $ ('# form'). Sisyphus (); Everything works, but when a modal window is called the second time, is not working. How can I solve the problem?

sergey-kukosh avatar Jul 17 '15 17:07 sergey-kukosh

$ ('# form'). Sisyphus () should not have worked in first place. Instead, it should have been $('# form').sisyphus(). Could you please provide more details on the issue?

simsalabim avatar Jul 17 '15 20:07 simsalabim

Есть форма, которая подгружается с помощью ajax в модальное окно. Когда сервер мне возвращает форму, я определяю ее название и вызываю функцию библиотеки. var form = modalBody.find('form'); $('#' + form.attr('id')).sisyphus(); Эта форма содержит детали заказа. Так вот, когда я ее в первый раз вызываю, все отлично сохраняется в localstorage. Но вот вызвав ее еще раз для просмотра деталей заказа она абсолютно не реагирует на изменения, а так же автоматически не заполняет форму. Что вы можете посоветовать?

sergey-kukosh avatar Jul 17 '15 20:07 sergey-kukosh

Нужно дебажить. Попробуйте вызывать в js-code debug в месте вызова модального окна и посмотреть что там происходит (будет работать и в chrome dev tools, и в firefox с firebug).

simsalabim avatar Jul 18 '15 02:07 simsalabim

Подебажив заметил одну особенность, вместо того чтоб перезаписывать значение в localstorage, добавляется новая запись, вероятно берется во внимание id, но я не могу исключить из формы id так как по нему привязан label. Может это можно сделать в самой библиотеке? Может я что то не так делаю, вот код который работает с функцией и модальным окном, а так же скриншот того что происходит в localstorage. $('#add-clothing').live('click', function(event){ event.preventDefault(); var clothing = $("#clothing-select :selected").val();

    if(clothing === ''){
        $('#message-clothing').html('');
        $('#message-clothing').append('Please select clothing');
    } else {

        var modalContainer = $('#my-modal');
        var modalBody = modalContainer.find('.modal-body');

        $.ajax({
            url: '?r=order/order/get-details',
            type: "POST",
            data: {'details': clothing},
            success: function (data) {
                modalBody.html(data);
                $('#save-modal').show();
                $('#update-details').hide();
                modalContainer.modal({show: true});
                var form = modalBody.find('form');
                $('#' + form.attr('id')).sisyphus();
            }
        });

    }
});

debag

sergey-kukosh avatar Jul 18 '15 11:07 sergey-kukosh