За последние 24 часа нас посетили 17403 программиста и 1286 роботов. Сейчас ищут 1633 программиста ...

Динамическое изменение формы

Тема в разделе "JavaScript и AJAX", создана пользователем DekaR, 2 апр 2007.

  1. DekaR

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

    С нами с:
    18 ноя 2006
    Сообщения:
    52
    Симпатии:
    0
    Вот код
    [js]<script language="javascript">
    function go () {
    document.all.city.disabled=false ;
    newopt=document.createelement("OPTION");
    newopt.text="city";
    newopt.value="newvalue";
    document.all.city.options.add(newopt,document.city.length);
    }
    </script>[/js]
    расположен он в head , но почему эксплоер при измененийй элемента вызывающего данную функцию показывает,мол объект не поддерживает cd-во или метод ?
     
  2. AlexGousev

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

    С нами с:
    25 мар 2006
    Сообщения:
    1.505
    Симпатии:
    0
    Адрес:
    Москва
    Это устаревшая форма записи.
    HTML:
    1. <script type="text/javascript">
    или
    HTML:
    1. <script type="application/x-javascript">
    Не надо использовать document.all.
    Не надо присваивать атрибуту disabled значение. У него его нет.
    HTML:
    1. document.getElementById("city").removeAttribute("disabled");
    Объясните, что вы хотите сделать этим кодом.

    ЗЫ: учебники по JavaScript 96-го года - это не подходящая литература для современного программирования.
     
  3. Psih

    Psih Активный пользователь
    Команда форума Модератор

    С нами с:
    28 дек 2006
    Сообщения:
    2.678
    Симпатии:
    6
    Адрес:
    Рига, Латвия
    Потому что JavaScript регистрозависимый. Поэтому надо писать createElement

    AlexGousev
    Хорошо конечно что объяснили человеку что плохо, а что не, но на вопрос ответ тоже надо давать :)
     
  4. AlexGousev

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

    С нами с:
    25 мар 2006
    Сообщения:
    1.505
    Симпатии:
    0
    Адрес:
    Москва
  5. Psih

    Psih Активный пользователь
    Команда форума Модератор

    С нами с:
    28 дек 2006
    Сообщения:
    2.678
    Симпатии:
    6
    Адрес:
    Рига, Латвия
    AlexGousev
    Гх.. KISS отдыхает, да? :D
     
  6. AlexGousev

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

    С нами с:
    25 мар 2006
    Сообщения:
    1.505
    Симпатии:
    0
    Адрес:
    Москва
    Psih
    Я, честно, просто не понял, что и где не работает. Поэтому попросил пояснить код.

    Про KISS юмора не понял :)
    Видимо, опять что-то пропустил :wink:
     
  7. Psih

    Psih Активный пользователь
    Команда форума Модератор

    С нами с:
    28 дек 2006
    Сообщения:
    2.678
    Симпатии:
    6
    Адрес:
    Рига, Латвия
    KISS - Keep It Simple Stupid - главный слоган PHP :)
    Шутка была в том, что человеку надо было один символ подправить, а вы ему почти весь скрипт переписали :) Да ещё и ошибку умудрились не исправить ;)
     
  8. AlexGousev

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

    С нами с:
    25 мар 2006
    Сообщения:
    1.505
    Симпатии:
    0
    Адрес:
    Москва
    Виноват, больше не буду :)
     
  9. Psih

    Psih Активный пользователь
    Команда форума Модератор

    С нами с:
    28 дек 2006
    Сообщения:
    2.678
    Симпатии:
    6
    Адрес:
    Рига, Латвия
    AlexGousev
    Да я понимаю, бывает что заносит, сам грешу иногда. Просто вас немного черезчур занесло, ИМХО :)
     
  10. DekaR

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

    С нами с:
    18 ноя 2006
    Сообщения:
    52
    Симпатии:
    0
    Отвечу сразу всем. AlexGousev учебник издан в 2003 году. Я не знал что 2003 это настолько старо. Про регистрозависимость забыл.
    Код вызывается списком выбора страны и изменяет список городов.
    эта проблемма уже решена так :



    [js]<script language="javascript">
    function go () {

    if (document.all.country.options[document.all.country.selectedIndex].value==0 )
    {document.all.city.disabled=true;}else { document.all.city.disabled=false;

    newOption = document.createElement("OPTION");
    newOption.text =document.all.country.options[document.all.country.selectedIndex].value;
    newOption.value = "45";
    document.all.city.options.add(newOption, document.all.city.length);
    };}[/js]

    Теперь как-то надо надо совместить JS и PHP чтоб при выборе определённой страны -загружать из MySQL список городов для неё
     
  11. AlexGousev

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

    С нами с:
    25 мар 2006
    Сообщения:
    1.505
    Симпатии:
    0
    Адрес:
    Москва
    DekaR
    Сорри, не хотел "наезжать", просто код является примером "как не надо писать на JavaScript". Ну да ладно - это личное дело каждого....

    Тут вам прямая дорога для применения XMLHttpRequest (в народе AJAX).
    Многие предпочитают использовать его не напрямую, а посредством библиотеки JsHttpRequest:
    http://dklab.ru/lib/JsHttpRequest/
     
  12. DekaR

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

    С нами с:
    18 ноя 2006
    Сообщения:
    52
    Симпатии:
    0
    AlexGousevда я не обиделся.Откуда я знал. Я JS только начинаю. думал как в книге написано так и надо.
    Но... Век живи,век учись...