За последние 24 часа нас посетили 17634 программиста и 1669 роботов. Сейчас ищут 1564 программиста ...

Вывод значения переменной

Тема в разделе "JavaScript и AJAX", создана пользователем Kocapb, 17 окт 2008.

  1. Kocapb

    Kocapb Активный пользователь

    С нами с:
    10 июл 2008
    Сообщения:
    169
    Симпатии:
    0
    Здравствуйте. Поставлена задача:

    • Вывести значение переменной без рамки. Вывод без перегрузки страницы.
    я подошёл к этой задаче так:

    HTML:
    1.  
    2. //по нажатию кнопки вызываю JC функцию передавая ей параметры из формы
    3. <input type="button" name="button"  onClick="countALL(document.countPC.pcQuantity, document.countPC.serverQuantity, document.countPC.addresQuantity)"/></td>
    [js]
    //в теле JC функции передаю обратно в форму полученное значение
    //расчёт pay4address
    document.countPC.output4Addres.value = pay4addres;
    [/js]

    HTML:
    1.  
    2. //передача производится в скрытое поле
    3. <input  name="output4Addres" type="hidden" readonly="readonly" size="11" maxlength="128"/>
    4.  
    а вот как поступать дальше, мозгов честно говоря не хватает.
    Сделал функцию JC:
    [js]
    function docW(text4output)
    {
    document.write(text4output);
    }[/js]
    передавая ей значение сразу после тега
    HTML:
    1.  
    2. <input align="center" name="output4Addres" type="hidden" readonly="readonly" size="11" maxlength="128"/>
    3.    <script language="JavaScript">
    4.    <!-- Скрыть  
    5.     docW(document.countPC.output4Addres.value);
    6.   // -->
    7.    </script>
    8.  
    но она не перехватывает событие и не изменяется динамически с изменением output4Addres. Посоветуйте как мне быть дальше, или если есть другой подход просветите плз...
    P.S. если поставленная задаче не имеет решение пишите тоже.
     
  2. Если хочешь, что бы таких проблем не было, забудь document.write() как страшный сон, и выучи DOM функции.
     
  3. Kocapb

    Kocapb Активный пользователь

    С нами с:
    10 июл 2008
    Сообщения:
    169
    Симпатии:
    0
    попробовал отловить событие onChange
    HTML:
    1. <input align="center" name="output4Addres" type="text" readonly="readonly" size="12" maxlength="128" onChange="docW(document.countPC.output4Addres.value)"/>
    не помогло.
     
  4. Kocapb

    Kocapb Активный пользователь

    С нами с:
    10 июл 2008
    Сообщения:
    169
    Симпатии:
    0
    флоппик
    ок спасибо. буду копать
     
  5. Kocapb

    Kocapb Активный пользователь

    С нами с:
    10 июл 2008
    Сообщения:
    169
    Симпатии:
    0
    хмм, вопрос по поводу DOM.
    • Чтобы использовать DOM функции необходимо HTML-страницу на которой я хочу использовать этот механизм перевести в формат XML-документа?
     
  6. Kocapb

    Kocapb Активный пользователь

    С нами с:
    10 июл 2008
    Сообщения:
    169
    Симпатии:
    0
    флоппик
    механизм работы с DOM-функциями рассказать можешь? (кратко) или ссылку линконуть?
    если нет, то все равно спасибо с мёртвой точки дело хоть не много сдвинулось. еще раз благодарю
     
  7. вот это, в приципе, работа через DOM.
    а зачем тебе onChange?
    Я так понял, тебе по нажатию на кнопку, надо внести цифру в скрытое поле и отобразить в определенном месте на странице?
     
  8. Sergey89

    Sergey89 Активный пользователь

    С нами с:
    4 янв 2007
    Сообщения:
    4.796
    Симпатии:
    0
  9. Kocapb

    Kocapb Активный пользователь

    С нами с:
    10 июл 2008
    Сообщения:
    169
    Симпатии:
    0
    флоппик
    да причём вывод не в тег input.
    просто строкой, но так чтобы она менялась каждый раз при нажатии кнопки рассчитать.
    я вот голову ломаю с утра... возможно ли такое бес перезагрузки страницы
     
  10. Kocapb

    Kocapb Активный пользователь

    С нами с:
    10 июл 2008
    Сообщения:
    169
    Симпатии:
    0
    я вот как думаю, что надо создать тэг, присвоить ему имя и просто присваивать ему значение через DOM, но как выделить этот тэг?
    HTML:
    1.  
    2. <myTag name="myTag">
    3. </myTag>
    так ? а значение будет выводится? если я напишу
    HTML:
    1.  
    2. document.countPC.myTag.value = pay4addres;
    3.  
     
  11. Sergey89

    Sergey89 Активный пользователь

    С нами с:
    4 янв 2007
    Сообщения:
    4.796
    Симпатии:
    0
    Просто присвоить значение нельзя. Нужно добавить текстовую ноду.

    [js]<html>
    <body>
    <script type="text/javascript">
    div = document.createElement('div');
    div.appendChild(document.createTextNode('hello, world'));
    document.getElementsByTagName('body')[0].appendChild(div);
    </script>
    </body>
    </html>[/js]
     
  12. Kocapb

    Kocapb Активный пользователь

    С нами с:
    10 июл 2008
    Сообщения:
    169
    Симпатии:
    0
    ты имеешь ввиду использовать поле innerText?
    хмм а за код спасибо пойду его раскурю.
     
  13. Ну, ему и innerHTML сойдет, в сущесвующую ноду.
     
  14. Kocapb

    Kocapb Активный пользователь

    С нами с:
    10 июл 2008
    Сообщения:
    169
    Симпатии:
    0
    то есть я понимаю алгоритм такой:
    Шаг 1.
    Создаю ноду
    HTML:
    1.  
    2.  <script type="text/javascript">
    3.    div = document.createElement('div');
    4.    div.appendChild(document.createTextNode('hello, world'));
    5.    document.getElementsByTagName('body')[0].appendChild(div);
    6.  </script>
    7. </body>
    8.  
    Шаг 2. По нажатию кнопки вызываю функцию
    [js]
    elemenet=document.getElementByTagName("body");
    element.innerHTML = "Здесь <i>может быть<b>любой</b></i> HTML текст."
    document.getElementsByTagName('body')[0].appendChild(div) = elemenet;
    [/js]
     
  15. Ну, можешь просто тег вписать в нужное место, тебе же его динамически генерировать смысла нет.
     
  16. Kocapb

    Kocapb Активный пользователь

    С нами с:
    10 июл 2008
    Сообщения:
    169
    Симпатии:
    0
    верно. пошёл на практике реализовывать... спасибо за помощь!
     
  17. Luge

    Luge Старожил

    С нами с:
    2 фев 2007
    Сообщения:
    4.680
    Симпатии:
    1
    Адрес:
    Минск
    а можно грязно схалтурить и выводить в input :)
     
  18. Kocapb

    Kocapb Активный пользователь

    С нами с:
    10 июл 2008
    Сообщения:
    169
    Симпатии:
    0
    да я так и сделал по началу =) но в задании надо сделать вывод без ячейки
     
  19. karakh

    karakh Активный пользователь

    С нами с:
    11 дек 2007
    Сообщения:
    1.344
    Симпатии:
    0
    А ты ее css-ом поправь, чтобы не видно было :)
     
  20. Kocapb

    Kocapb Активный пользователь

    С нами с:
    10 июл 2008
    Сообщения:
    169
    Симпатии:
    0
    а каким образом?
     
  21. Kocapb

    Kocapb Активный пользователь

    С нами с:
    10 июл 2008
    Сообщения:
    169
    Симпатии:
    0
    готовый вариант
    [js]
    <body>
    <script type="text/javascript">
    div = document.createElement('div');
    document.getElementsByTagName('body')[0].appendChild(div);
    </script>
    </body>
    [/js]
    при нажатии на кнопку вызывается функция и выполняется подсчёт (в теле функции добавлена строка)
    [js]
    div.innerHTML = "любое значение";
    [/js]
     
  22. karakh

    karakh Активный пользователь

    С нами с:
    11 дек 2007
    Сообщения:
    1.344
    Симпатии:
    0
    А почему не поставить сразу на страницу <div id="oops"></div> , а потом из js

    [js]document.getElementById("oops").innerHTML = "любое значение";[/js]
     
  23. Kocapb

    Kocapb Активный пользователь

    С нами с:
    10 июл 2008
    Сообщения:
    169
    Симпатии:
    0