sisyphus
sisyphus copied to clipboard
It does not work if you call 2 times
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?
$ ('# 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?
Есть форма, которая подгружается с помощью ajax в модальное окно. Когда сервер мне возвращает форму, я определяю ее название и вызываю функцию библиотеки. var form = modalBody.find('form'); $('#' + form.attr('id')).sisyphus(); Эта форма содержит детали заказа. Так вот, когда я ее в первый раз вызываю, все отлично сохраняется в localstorage. Но вот вызвав ее еще раз для просмотра деталей заказа она абсолютно не реагирует на изменения, а так же автоматически не заполняет форму. Что вы можете посоветовать?
Нужно дебажить. Попробуйте вызывать в js-code debug
в месте вызова модального окна и посмотреть что там происходит (будет работать и в chrome dev tools, и в firefox с firebug).
Подебажив заметил одну особенность, вместо того чтоб перезаписывать значение в 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();
}
});
}
});