Помогите разобраться с JavaScript

S1
На сайте с 02.09.2004
Offline
103
709

Столкнулся с проблемой не могу побороть.

Есть такой код для вывода формы

<div id="ShowAddComment">


<form onclick="if (document.getElementById('AddItemForm').innerHTML == '') sendBackgroundRequest('{/shop/path}?action=show_form_add_item&amp;group_id={$parent_group_id}', 'get', callbackfunction_showFormAddItem); else cr('AddItemForm'); return false;" href="javascript:void(0)" method="post">
<input name="mysubmit" class="button1 blue" type="submit" value="Добавить объявление в этот раздел"/>
</form>

<!-- Блок для вывода уведомлений о добавлении объявления или ошибке добавления -->

</div>

<div id="AddItemMessage"></div>

<div id="AddItemForm" style="display: block"></div>

Однако есть у меня и скрипт реализующий ползунок устанавливающий уровень цен

http://pro-manager.ru/images/price/polz3.js

Он блокирует открытие формы, разобраться почему это происходит у меня не получается, но методом тыка, я пришел к выводу что это из-за использования document.getElementById в выше обозначенном скрипте.

Посмотреть как не открывается форма можно здесь - http://pro-manager.ru/inside/

Помогите советом или ткните носом, что удалить или дописать в скрипте, чтобы не блокировалось открытие формы

Заранее спасибо

ДП
На сайте с 23.11.2009
Offline
203
#1

Может onclick все-таки к <input/> приделать, а не к форме. Если к форме - то onsubmit тогда уж.

S1
На сайте с 02.09.2004
Offline
103
#2

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

ДП
На сайте с 23.11.2009
Offline
203
#3

я бы еще скобочек фигурных в условии написал, а то вдруг чего.

S1
На сайте с 02.09.2004
Offline
103
#4

Здесь?

(document.getElementById{'AddItemForm'}.innerHTML == '')

так, тот же результат. :(

RT
На сайте с 07.04.2008
Offline
56
#5

У вас первая причина проблемы в том, что при клике у вас происходит перезагрузка страницы, а по коду, я так понимаю у вас идёт фоновая отправка сообщения аяксом. Соответственно вам нужно сначала убрать перезагрузку страницы, для этого вам нужно onclick повесить на кнопку, а не на форму и вернуть return false;

Должно так работать, если не работает смотрите функцию sendBackgroundRequest и cr у себя.


<div id="ShowAddComment">
<form method="post">
<input onclick="if(document.getElementById('AddItemForm').innerHTML=='') sendBackgroundRequest('{/shop/path}?action=show_form_add_item&amp;group_id={$parent_group_id}', 'get', callbackfunction_showFormAddItem); else cr('AddItemForm'); return false;" name="mysubmit" class="button1 blue" type="submit" value="Добавить объявление в этот раздел"/>
</form>
<!-- Блок для вывода уведомлений о добавлении объявления или ошибке добавления -->
</div>

<div id="AddItemMessage"></div>

<div id="AddItemForm" style="display: block"></div>

Убрал для теста эти функции, без них можете заметить, что при клике текст добавляется


<div id="ShowAddComment">
<form method="post">
<input onclick="if(document.getElementById('AddItemForm').innerHTML=='') document.getElementById('AddItemForm').innerHTML='Test1'; else document.getElementById('AddItemForm').innerHTML='Test2'; return false;" name="mysubmit" class="button1 blue" type="submit" value="Добавить объявление в этот раздел"/>
</form>
<!-- Блок для вывода уведомлений о добавлении объявления или ошибке добавления -->
</div>

<div id="AddItemMessage"></div>

<div id="AddItemForm" style="display: block"></div>
Студия «Дз» (http://dddzzz.ru/) — создание сайтов, графический дизайн
S1
На сайте с 02.09.2004
Offline
103
#6

Спасибо. Со вторым кодом тест 1 и тест 2 выпадает. А вот с sendBackgroundRequest и cr, идет перезагрузка.

А что именно я должен смотреть в этих функция, вот тут http://pro-manager.ru/images/price/polz3.js я не нашел упоминания этих функций. :(

RT
На сайте с 07.04.2008
Offline
56
#7
Sacred13:
А что именно я должен смотреть в этих функция, вот тут http://pro-manager.ru/images/price/polz3.js я не нашел упоминания этих функций.

Смотреть чтобы они выполнялись без ошибок и в том варианте в каком вы хотите. Ищите в других подключаемых скриптах "sendBackgroundRequest" видел в "/hostcmsfiles/ajax/ajax.js"

S1
На сайте с 02.09.2004
Offline
103
#8

Если убрать этот скрипт http://pro-manager.ru/images/price/polz3.js

то все прекрасно работает.

Поэтому разве может быть проблема в /hostcmsfiles/ajax/ajax.js?

RT
На сайте с 07.04.2008
Offline
56
#9

Воспользуйтесь firebag в лисе, или загрузите в хроме консоль и смотрите ошибки которые вываливаются. сейчас при загрузки страницу вываливаются две ошибки для начала их уберите.

S1
На сайте с 02.09.2004
Offline
103
#10

Поставил,

пишет $("body") is null

$("body").css("cursor", "wait");

в файле http://pro-manager.ru/hostcmsfiles/ajax/ajax.js

Что сие означает? Разжуйте пожалуйста.

но если убрать http://pro-manager.ru/images/price/polz3.js, то эта ошибка не появляется и форма открывается.

спасибо.

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий