Помощь новичкам в изучении JS

Тема в разделе "JavaScript", создана пользователем alexXXL, 30 окт 2012.

Модераторы: ZiX
  1. alexXXL

    alexXXL Постоялец

    Регистр.:
    7 май 2012
    Сообщения:
    123
    Симпатии:
    8
    Предлагаю в этой теме опытным JS-кодерам оказывать посильную помощь тем, кто только недавно начал изучать javascript.
    Вот я столкнулся с такой задачей. Мне нужно, чтобы в зависимости от выбора <select name="grdnaz" id="grdnaz"> менялась переменная cost_min. Я написал такой код:
    Код:
    <script>
    var grd_naz = document.getElementById("grdnaz").value;
    var cost_min
    function costMin(){
    if(grd_naz==1) document.getElementById("cost_min").value=500;
    if(grd_naz==2) document.getElementById("cost_min").value=500;
    if(grd_naz==3) document.getElementById("cost_min").value=500;
    if(grd_naz==4) document.getElementById("cost_min").value=500;
    if(grd_naz==5) document.getElementById("cost_min").value=1300;
    if(grd_naz==6) document.getElementById("cost_min").value=1300;
    if(grd_naz==7) document.getElementById("cost_min").value=1300;
    
    document.forms['calcForm'].elements['grdnaz'].fireEvent('change');
    }
    </script>
    <input id="cost_min" type="hidden" name="cost_min" value="">
    
    Видимо я что-то не так сделал, потому что в инпут ничего не передается. Подскажите, в чем ошибка?
     
  2. mcdir

    mcdir

    Регистр.:
    6 ноя 2007
    Сообщения:
    202
    Симпатии:
    37
    Код:
    дето там grd_naz
    <form>
    <input id="cost_min" type="hidden" name="cost_min" value="">
    </form>
    <script>
    f=(function (){
    var grd_naz = document.getElementById("grdnaz").value;
    var cost_min;
     
    if(grd_naz==1) document.getElementById("cost_min").value=500;
    if(grd_naz==2) document.getElementById("cost_min").value=500;
    if(grd_naz==3) document.getElementById("cost_min").value=500;
    if(grd_naz==4) document.getElementById("cost_min").value=500;
    if(grd_naz==5) document.getElementById("cost_min").value=1300;
    if(grd_naz==6) document.getElementById("cost_min").value=1300;
    if(grd_naz==7) document.getElementById("cost_min").value=1300;
     
    document.forms['calcForm'].elements['grdnaz'].fireEvent('change');
    })();
    </script>
     
    alexXXL нравится это.
  3. alexXXL

    alexXXL Постоялец

    Регистр.:
    7 май 2012
    Сообщения:
    123
    Симпатии:
    8
    Поставил <script> после формы и значение переменной теперь присваивается, но при изменении селекта она не меняется.
     
  4. mcdir

    mcdir

    Регистр.:
    6 ноя 2007
    Сообщения:
    202
    Симпатии:
    37
    а повесить событие на изменение ? и if лучше переписать на селект
     
  5. alexXXL

    alexXXL Постоялец

    Регистр.:
    7 май 2012
    Сообщения:
    123
    Симпатии:
    8
    Разве document.forms['calcForm'].elements['grdnaz'].fireEvent('change') не отслеживает изменение?
    А на if я планирую повесить выбор еще двух переменных, но это будет следующий этап. Сейчас с одной нужно разобраться)))
     
  6. mcdir

    mcdir

    Регистр.:
    6 ноя 2007
    Сообщения:
    202
    Симпатии:
    37
     
  7. alexXXL

    alexXXL Постоялец

    Регистр.:
    7 май 2012
    Сообщения:
    123
    Симпатии:
    8
    Внимательно прочитал и понял, что js не для меня. В теории я представляю, по какому алгоритму мне нужно сделать вычисления, а на практике ничего не получается... Но все-таки задача стоит доделать этот долбаный калькулятор. Не сочтите за наглость, ткните носом, что куда дописать, чтобы повесить событие на изменение селекта?
     
  8. felix0808

    felix0808 Создатель

    Регистр.:
    19 янв 2013
    Сообщения:
    16
    Симпатии:
    0
    Народ а в JS есть функция которая осуществляет поиск по части ссылки?
    допустим есть куча URL'в они все начинаются по разному но где нибудь в середине есть общее слово
    типа
    http://super-site.ru/kolbasa/...
    http://myaso.ru/kolbasa/...
    http://zavod.ru/kolbasa/...
    document.URL возвращает всю ссылку, document.URL.substring(0,15) возвращает часть, но цифры всегда меняются
    а как намутить функцию которая будет цеплять URL по части текста в нем ?
     
  9. mcdir

    mcdir

    Регистр.:
    6 ноя 2007
    Сообщения:
    202
    Симпатии:
    37
    см http://javascript.ru/RegExp
     
  10. SkiLLer

    SkiLLer

    Регистр.:
    22 авг 2007
    Сообщения:
    307
    Симпатии:
    64
    ну вот код, который отработал, если я правильно понял задачу
    Код:
    <form name="calcForm" id="calcForm">
    <input id="cost_min" type="text" name="cost_min" value="">
    <select name="grdnaz" id="grdnaz">
        <option value="1">Kyiv</option>
        <option value="2">Moscow</option>
        <option value="3">New-York</option>
    </select>
    </form>
    <script>
    document.calcForm.elements['grdnaz'].onchange  = function(){   
    var grd_naz = document.getElementById("grdnaz").value;
     
    if(grd_naz==1) document.getElementById("cost_min").value=500;
    if(grd_naz==2) document.getElementById("cost_min").value=600;
    if(grd_naz==3) document.getElementById("cost_min").value=700;
    }
    </script>