Входное значение и div innerHTML изменяются с помощью Javascript, но не меняются при отображении - PullRequest
2 голосов
/ 22 февраля 2012

У меня есть текстовое поле INPUT, DIV и IMG.

IMG имеет событие onClick:

  • читает текущее значение поля INPUT,

  • увеличить его на 1,

  • выполнить расчет с увеличенным значением,

  • записать результатв DIV.

Значение INPUT всегда правильно увеличивается, и innerHTML DIV всегда получает правильный результат , но на дисплее ничего не меняется .Отображаемые числа всегда остаются неизменными, даже если все выполняется правильно в фоновом режиме.

Самое смешное, что Я использовал ту же операцию в другом месте на том же сайте, и там все работаети отображает отлично .

Вот функция:

    function priceCalculator(max_amound,price,id)
    {
        var amound = parseInt(document.getElementById('sell_amound_' + id).value);
        max_amound = parseInt(max_amound);
        if (amound < max_amound)
        {
            amound = amound + 1;
            document.getElementById('sell_amound_' + id).value = amound;
            var item_value = amound * price;
            document.getElementById('price_' + id).innerHTML = item_value;

            alert(document.getElementById('sell_amound_' + id).value + ',' + document.getElementById('price_' + id).innerHTML);
        }
    }

А вот элементы в коде PHP:

<img src="images/plus.png" onclick="priceCalculator(\''.$bag_items[$i]['amound'].'\',\''.$bag_items[$i]['infos']['price'].'\',\''.$i.'\')" />
<form>
    <input id="sell_amound_'.$i.'" type="text" readonly value="1" />
</form>
<div id="price_'.$i.'">'.$bag_items[$i]['infos']['price'].'</div>

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

Это действительно простое действие ... В чем может быть проблема?

РЕДАКТИРОВАТЬ:

После загрузки исходного кода «элемент» выглядит следующим образом (эти части создаются с помощью циклов из базы данных, и, конечно, я удалил ненужный стиль из кода, и эти многие элементы DIV есть из-заих):

<td>
    <img id="item_pic_3" src="images/potions/3.png" onClick="shopSellInfo('3')" />
    <div>26</div>
    <form>
        <input type="hidden" id="selected_item" value="" />
    </form>
    <div id="item_3" style="display: none;">
        <span>blah...</span><br />
        <span>
            <br />blah...<br /><br />
            <div>
                <div>
                    <img src="images/increase.png" onclick="priceCalculator('26','10','3')" /><br />
                </div>
            <div>
            <form>
                <input id="sell_amound_3" type="text" readonly value="1" />
            </form>
            /26
            </div>
        </div>
        <br />
        <div id="price_3">10</div>
        </span>
    </div>
</td>

shopSellInfo ('3') - это функция, позволяющая отображать item_3 в нужном месте.

Ответы [ 2 ]

0 голосов
/ 22 февраля 2012

Я решил проблему!

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

В любом случае, спасибо за ваши ответы и будем за помощь!

0 голосов
/ 22 февраля 2012

Можете ли вы просмотреть исходный код и показать, что выводится с помощью:

<div id="price_'.$i.'">'.$bag_items[$i]['infos']['price'].'</div>

Убедитесь, что div id соответствует JavaScript.

EDIT : item_3 имеет стиль CSS display: none, поэтому изменения не отображаются.

...