Программирование => JavaScript & JScript => Тема начата: Muma от 28 Марта 2006, 10:35:57
Название: Нужно в форме из одного поля - Submit после его заполнения
Отправлено: Muma от 28 Марта 2006, 10:35:57
Добрый день!
Есть форма только с одним полем (выбор даты).Сама дата выбирается из Календаря. Было бы очень удобно чтобы Submit срабатывал сразу после смены даты в поле но... Такой код не работает.
onChange="javascript:this.form.submit()" >
Если руками изменяю значение поля то все нормально. А вот если выбираю из Календаря то Submit не происходит (хотя значение поля изменилось).
Если кто знает как это сделать - подскажите pls.
Название: Нужно в форме из одного поля - Submit после его заполнения
Отправлено: unclebob от 28 Марта 2006, 12:50:03
дописать календарь чтоб при изменении даты делал submit() либо если календарь передает после закрытия фокус xlo_date, то на событие onFocus проверять изменилось ли значение и если да то submit()
Название: Нужно в форме из одного поля - Submit после его заполнения
Отправлено: html_coder от 28 Марта 2006, 13:17:49
Просто наверное нужно исправить ошибку в коде и всё заработает.
В событите onChange первого input не надо писать java script: , а если это и пишется то без пробела т.е. JavaScript:.
Я делал аналогичную вещь, только я не форму сабмитил а менял location у document и всё чётко работало.
Muma попробуйте исправить код!
Название: Нужно в форме из одного поля - Submit после его заполнения
Отправлено: Muma от 28 Марта 2006, 15:28:44
Дело в том что выбранная дата вставляется в SELECT который обращается к БД. Поэтому я не представляю как тут можно обойтись без Формы.
Название: Нужно в форме из одного поля - Submit после его заполнения
Отправлено: html_coder от 28 Марта 2006, 16:55:45
Цитировать
Muma: Дело в том что выбранная дата вставляется в SELECT который обращается к БД...
где Select в коде я не вижу, наверное Вы имеете ввиду Input. без формы можно обойтись например как я и говорил вот так
Название: Нужно в форме из одного поля - Submit после его заполнения
Отправлено: Muma от 29 Марта 2006, 18:05:11
Цитировать
где Select в коде я не вижу
Это другой SELECT - который в SQL отправляет запросы к БД.
Попробывал я вариант от html_coder . В принципе он делает тоже самое (вернее результата снова не приносит). Проблема в том, что OnChange у INPUT of \'xlo_date\' опять же не срабатывает. Руками меняю поле xlo_date - все Ok. Меняю поле из Календаря - ничего не происходит.
ЗАДАЧА : Заставить сработать OnChange и причем только если поле поменялось чтоб запрос к БД не \'ушел\' за дату которая уже находится в поле \'xlo_date\'.
Название: Нужно в форме из одного поля - Submit после его заполнения
Отправлено: html_coder от 29 Марта 2006, 18:49:18
Цитировать
Muma: Руками меняю поле xlo_date - все Ok.
Muma скажите, когда вы руками меняете поле в какой момент у Вас конкретно срабатывает скрипт, который обрабатывает эту дату?
Событие onChange срабатывает у текстового поля в момент, когда элемент теряет фокус, поэтому если дата вставляется из календаря, но при этом фокус остаётся в Input, то при таком раскладе по логике событие сработать не должно!
Название: Нужно в форме из одного поля - Submit после его заполнения
Отправлено: Muma от 30 Марта 2006, 13:15:00
Да все правильно.Я уже понял что только изменение руками (& мышью) вызывает событие OnChange - просто подскажите как добиться чтобы форма отправила на сервер значение INPUT . Но без отдельной кнопки \'SUBMIT\' разумеется.
Я попробовал у второго инпута после события onClick вставить onBlur="this.form.submit()" . Форма отправляет данные на Сервер но при этом новое значение из Календаря не вставляется в \'xlo_date\'.
... ?
Название: Нужно в форме из одного поля - Submit после его заполнения
Отправлено: html_coder от 30 Марта 2006, 14:44:01
Если можете выложите куда-нибудь ссылку на страницу, где это можно посмотреть, так уже трудно что-либо сказать...
Название: Нужно в форме из одного поля - Submit после его заполнения
Отправлено: Muma от 30 Марта 2006, 15:41:02
Цитировать
Если можете выложите куда-нибудь ссылку на страницу, где это можно посмотреть, так уже трудно что-либо сказать...