firebug указывает на ошибку jquery, но я не знаю, как решить эту ошибку

Я считаю, что на моем сайте есть конфликт jquery. Но я не понимаю, как использовать firebug для его отладки.

При нажатии на ссылку «Рассчитать доставку и обработку» на странице нашей корзины результаты никогда не отображаются.

Для этого вам нужно сначала добавить товар в корзину на странице http://www.musicforte.com/sheet_music/, а затем нажмите «Корзина» в правом верхнем углу страницы.

То, что я вижу в firebug при просмотре «консоли» с «постоянно», это красный крестик и ошибка в строке 141 jquery.js.

Как я могу понять, где находится конфликт, и разрешить его?

Я изменил код, чтобы включить идентификатор в кнопку «Рассчитать доставку», как было предложено, но все равно не повезло. Вот код, который используется:

Я попытался добавить идентификатор к кнопке «Рассчитать доставку». Но это не решило проблему. Я изменил код, чтобы читать:

<a href="#" class="EstimateShippingLink" onclick="Cart.ToggleShippingEstimation(); return false;"><em>%%LNG_CalculateShippingHandling%%</em></a>
                        <div class="EstimateShipping" style="display: none;">
                            <div class="EstimatedShippingMethods" style="display: none;">
                                <div class="ShippingMethodList">
                                </div>
                                <hr />
                            </div>
                            <dl>
                                <dt>%%LNG_Country%%:</dt>
                                <dd>
                                    <select style="width:200px;" name="shippingZoneCountry" id="shippingZoneCountry" onchange="Cart.ToggleShippingEstimateCountry();">
                                        %%GLOBAL_ShippingCountryList%%
                                    </select>
                                </dd>

                                <dt>%%LNG_StateProvince%%:</dt>
                                <dd>
                                    <select style="display: %%GLOBAL_ShippingHideStateList%%" style="width:200px;" name="shippingZoneState" id="shippingZoneState">
                                        %%GLOBAL_ShippingStateList%%
                                    </select>
                                    <input style="display: %%GLOBAL_ShippingHideStateBox%%" type="text" class="Textbox Field200" name="shippingZoneStateName" id="shippingZoneStateName" value="%%GLOBAL_AddressState%%" />
                                </dd>

                                <dt>%%LNG_ZipPostcode%%:</dt>
                                <dd><input type="text" class="Field100 Textbox" name="shippingZoneZip" id="shippingZoneZip" value="%%GLOBAL_ShippingZip%%" /></dd>
                            </dl>
                            <p class="Submit EstimateShippingButtons">
                                <span style="display:inline-block;padding-right: 10px;vertical-align:top;"><a href="#" onclick="Cart.ToggleShippingEstimation();">%%LNG_Cancel%%</a> %%LNG_or%% </span><input type="image" class="formBtn" src="%%GLOBAL_TPL_PATH%%/images/%%GLOBAL_SiteColor%%/CalculateShipping.gif" onclick="Cart.EstimateShipping();" value="%%LNG_CalculateShipping%%" id="fixshipping" />
                            </p>
                        </div>

person osakagreg    schedule 04.06.2012    source источник
comment
Выложи сюда хотя бы скрин   -  person zerkms    schedule 04.06.2012
comment
Вы также хотели бы обратить внимание на код состояния, отображаемый в Firebug. Это код состояния, возвращенный сервером для запроса; ошибка 500 указывает на исключение на стороне сервера и т.д.   -  person Tieson T.    schedule 04.06.2012


Ответы (1)


Проблема в том, что вы встраиваете модуль в форму, и когда вы нажимаете на ввод изображения, он выполняет браузер по умолчанию и отправляет всю форму, а не только поля доставки, и вызывает перезагрузку страницы.

Я считаю, что ошибка связана с прерыванием ajax.

Я запустил это в консоли и смог вернуть расчеты доставки без перезагрузки страницы или ошибки.

$('.EstimateShippingButtons input').click(function(){
   return false;
})

Возможно, вы захотите улучшить селектор, возможно, добавить идентификатор к кнопке отправки расчетов доставки.

РЕДАКТИРОВАТЬ: на самом деле просто нужно добавить return false или event.preventDefault() к вашему существующему обработчику

В cart.js добавьте его в конец Cart.EstimateShipping.

person charlietfl    schedule 04.06.2012
comment
добавлена ​​​​функция, которую вам нужно изменить внизу моего ответа - person charlietfl; 04.06.2012
comment
Должно быть, я делаю это неправильно. Теперь в cart.js у меня есть: $('.EstimateShipping .EstimateShippingButtons input').click(function(){return false;}) Это ближе к концу функции. Я сделал это неправильно? - person osakagreg; 04.06.2012
comment
просто добавьте return false; в конец функции - person charlietfl; 04.06.2012
comment
в порядке. Прямо перед закрывающей фигурной скобкой я добавил return false; Но проблема все еще существует. - person osakagreg; 04.06.2012
comment
попробуйте просто использовать мой код, а затем в блоке готовых событий jQuery - person charlietfl; 04.06.2012
comment
Я не понимаю, как это сделать. Мне жаль. Я запустил то, что вы указали выше, в консоли firebug, и у меня это тоже отлично сработало. Я хочу, чтобы firebug показал измененный код, чтобы я мог скопировать и вставить. Места, которые я пробовал выше, не работали. - person osakagreg; 04.06.2012