За последние 24 часа нас посетили 18330 программистов и 1611 роботов. Сейчас ищут 1756 программистов ...

Имитация onChange

Тема в разделе "JavaScript и AJAX", создана пользователем mawa, 8 май 2009.

  1. mawa

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

    С нами с:
    23 сен 2008
    Сообщения:
    100
    Симпатии:
    0
    Здравствуйте!!!
    Подскажите, пожалуйста, как можно имитировать событие onChange???

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

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

    С нами с:
    18 дек 2006
    Сообщения:
    162
    Симпатии:
    0
    Адрес:
    Минск
    а зачем его имитировать?
     
  3. vital

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

    С нами с:
    18 дек 2006
    Сообщения:
    162
    Симпатии:
    0
    Адрес:
    Минск
    HTML:
    1. <option value=value onClick="asd()">text</option>
     
  4. mawa

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

    С нами с:
    23 сен 2008
    Сообщения:
    100
    Симпатии:
    0
    У меня динамический select_1, select_2, select_3. После нажатия кнопки на этой же странице, я хочу что бы результат работы этих select-ов остался на странице. А этот результат получается по событию - onChange.

    Спасибо за ответ, ща попробуем!!!

    Что то не работает!!! Изменение в Select_1 происходит (выберается пункт №1), но не делается активным Select_2!!! Я пробую так?
    [js]
    document.getElementById("select_10").value=1;
    document.getElementById("select_10").onClick;
    [/js]
    и так
    [js]
    document.getElementById("select_10").value=1;
    document.getElementById("select_10").onClick=true;
    [/js]
    даже так
    [js]
    document.getElementById("select_10").value=0;
    document.getElementById("select_10").onClick;
    document.getElementById("select_10").value=1;
    document.getElementById("select_10").onClick;
    [/js]
     
  5. Cron

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

    С нами с:
    10 июл 2008
    Сообщения:
    289
    Симпатии:
    0
    Адрес:
    Украина, Сумы
    Не знаю, пройдет ли на чисто JS, на jQuery я бы написал так:
    Код (Text):
    1. document.getElementById("select_10").onChange()
     
  6. vital

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

    С нами с:
    18 дек 2006
    Сообщения:
    162
    Симпатии:
    0
    Адрес:
    Минск
    сразу не совсем понял что вам надо было
    вот:
    [js]document.getElementById("select_10").onclick();[/js]
    [js]document.getElementById("select_10").onchange();[/js]
     
  7. vital

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

    С нами с:
    18 дек 2006
    Сообщения:
    162
    Симпатии:
    0
    Адрес:
    Минск
    [js]onChange()[/js] не работает
     
  8. Cron

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

    С нами с:
    10 июл 2008
    Сообщения:
    289
    Симпатии:
    0
    Адрес:
    Украина, Сумы
    А элемент то вообще находит?
     
  9. vital

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

    С нами с:
    18 дек 2006
    Сообщения:
    162
    Симпатии:
    0
    Адрес:
    Минск
    HTML:
    1. <script type="text/javascript">
    2. function myclick() {
    3. document.getElementById('o1').onclick();
    4. }
    5. function mychange() {
    6. document.getElementById('form').onchange();
    7. }
    8. function myClick() {
    9. document.getElementById('o1').onClick();
    10. }
    11. function myChange() {
    12. document.getElementById('form').onChange();
    13. }
    14.  
    15. <select id=form onChange="alert('asd')">
    16. <option id=o1 value=1 onClick="alert(this.value)">111111</option>
    17. <option id=o2 value=2 onClick="alert(this.value)">222222</option>
    18. <br>
    19. <a onClick="myclick()">onclick</a>
    20. <a onClick="mychange()">onchange</a>
    21. <br>
    22. <a onClick="myClick()">onClick</a>
    23. <a onClick="myChane()">onChange</a>
     
  10. Cron

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

    С нами с:
    10 июл 2008
    Сообщения:
    289
    Симпатии:
    0
    Адрес:
    Украина, Сумы
     
  11. vital

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

    С нами с:
    18 дек 2006
    Сообщения:
    162
    Симпатии:
    0
    Адрес:
    Минск
    а собственно зачем если всё и так прекрасно работает?
     
  12. Cron

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

    С нами с:
    10 июл 2008
    Сообщения:
    289
    Симпатии:
    0
    Адрес:
    Украина, Сумы
    тебя не поймешь...
     
  13. vital

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

    С нами с:
    18 дек 2006
    Сообщения:
    162
    Симпатии:
    0
    Адрес:
    Минск
    [js]document.getElementById("select_10").onChange()[/js]
    тут дело в регистре
     
  14. mawa

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

    С нами с:
    23 сен 2008
    Сообщения:
    100
    Симпатии:
    0
    [js]
    document.getElementById("select_10").value=1;
    document.getElementById("select_10").onclick();
    document.getElementById("select_10").onChange();
    [/js]
    Не работает!!!
    В select_10 выбирается первый элемент, а не нулевой, все нормально, но Select_11 (второй) не делается активным!!
     
  15. Apple

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

    С нами с:
    13 янв 2007
    Сообщения:
    4.984
    Симпатии:
    2
    Спокойней ... не тыркайте в восклицательный знак так много.
     
  16. Два мужика скачут вокруг тупой бабы, которой всего лишь нужен selected="selected"
     
  17. vital

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

    С нами с:
    18 дек 2006
    Сообщения:
    162
    Симпатии:
    0
    Адрес:
    Минск
    это потому что onchange должен быть в нижнем регистре как я и писал выше
    потому что у первого элемента value=1 вот он и выбирается

    HTML:
    1. <script type="text/javascript">
    2. function aaa() {
    3. document.getElementById('select_10').value=0;
    4. document.getElementById('select_10').onchange();
    5. }
    6.  
    7. <select id=select_10 onChange="alert('asd')">
    8. <option value=0>000000</option>
    9. <option value=1>111111</option>
    10. <option value=2>222222</option>
    11. <br>
    12. <a onClick="aaa()">press</a>
     
  18. vital

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

    С нами с:
    18 дек 2006
    Сообщения:
    162
    Симпатии:
    0
    Адрес:
    Минск
    флоппик, я не любитель ябедничать но думаю всё же стоит отметить что вся неразбериха возникла из-за того что кое кто не видит разницы между
    и
     
  19. zheka_13

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

    С нами с:
    1 май 2009
    Сообщения:
    71
    Симпатии:
    0
    Разницы нет совершенно никакой.
     
  20. zheka_13

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

    С нами с:
    1 май 2009
    Сообщения:
    71
    Симпатии:
    0
    непонятно что вообще надо топикстартеру.... сформулировать вопрос надо понятно вот что... :)
     
  21. vital

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

    С нами с:
    18 дек 2006
    Сообщения:
    162
    Симпатии:
    0
    Адрес:
    Минск
    в HTML нет разницы
    в js есть
    http://www.w3schools.com/jsref/jsref_events.asp

    ps
    HTML:
    1. <script type="text/javascript">
    2. function myclick() {
    3. document.getElementById('o1').onclick();
    4. }
    5. function mychange() {
    6. document.getElementById('form').onchange();
    7. }
    8. function myClick() {
    9. document.getElementById('o1').onClick();
    10. }
    11. function myChange() {
    12. document.getElementById('form').onChange();
    13. }
    14.  
    15. <select id=form onChange="alert('asd')">
    16. <option id=o1 value=1 onClick="alert(this.value)">111111</option>
    17. <option id=o2 value=2 onClick="alert(this.value)">222222</option>
    18. <br>
    19. <a onClick="myclick()">onclick</a>
    20. <a onClick="mychange()">onchange</a>
    21. <br>
    22. <a onClick="myClick()">onClick</a>
    23. <a onClick="myChane()">onChange</a>
    ctrl+c ctrl+v и вы убедитесь во всём сами
     
  22. mawa

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

    С нами с:
    23 сен 2008
    Сообщения:
    100
    Симпатии:
    0
    Всем спасибо! Заработало вот так:
    [js]
    document.getElementById("select_10").value=<?php echo($s_id); ?>;
    document.getElementById("select_10").onchange();

    document.getElementById("select_11").value=<?php echo($r_id); ?>;
    document.getElementById("select_11").onchange();

    document.getElementById("select_12").value=<?php echo($g_id); ?>;
    document.getElementById("select_12").onchange();
    [/js]
    Это я меняю на значение которое мне надо:
    [js]
    document.getElementById("select_10").value=<?php echo($s_id); ?>;
    [/js]
     
  23. zheka_13

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

    С нами с:
    1 май 2009
    Сообщения:
    71
    Симпатии:
    0
    угу, разница есть... признаю
    не копал просто так глубоко...
     
  24. falcon39

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

    С нами с:
    25 май 2009
    Сообщения:
    1
    Симпатии:
    0
    Здравствуйте.
    Скачал календарь на javascript http://calendarxp.net/tt_pop.shtml
    Самый нижний пример Pick a week:
    Вопрос в том, как сделать чтоб после того как поле в котором появляется дата автоматически сработал какой нибудь скрипт? Мне нужна выборка из базы данных.

    Событие onChange происходит когда я там что нибудь вручную изменяю и "табом" ухожу.
    Спасибо.
     
  25. vital

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

    С нами с:
    18 дек 2006
    Сообщения:
    162
    Симпатии:
    0
    Адрес:
    Минск
    я так понимаю что значение в поле может меняться двумя способами:
    1 ввод даты вручную
    2 выбор даты из выпадающего календаря

    для первого варианта используйте onkeydown а в функции (keyDown()) которая будет вызываться делайте проверку на корректность введённых данных.. т.е. если введённая информация соответствует шаблону даты то вызывается функция которая делает то что задумано (query(date))
    для второго: функцию которая присваивает значение полю с датой дополнить вызовом функции которая делает то что задумано (query(date))

    зы учитывая что в поле могут быть введены не только конкретная дата но и месяц и неделя вам лучше сделать в keyDown() проверку на нажатие Enter.. т.е. только после нажатия Enter будет проверяться соответствие шаблону