Модераторы: Sardar, Aliance
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Не работает форма отправки по ссылке 
:(
    Опции темы
Gold Dragon
  Дата 25.11.2005, 16:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Призрачный
****


Профиль
Группа: Экс. модератор
Сообщений: 6753
Регистрация: 1.3.2004
Где: Россия, Тамбов

Репутация: 1
Всего: 71



Уже давно не писал в JS так что всё забыл... Вот код, не работает что-то... Нужно проверить бва поля на наличие чего-либо и отправить
Код

<script type="text/javascript">
 //проверка форм, по возвращает [true, false]
 function checkVorname(form) {
  var el, pat;
  for(var i=0; i<form.elements.length; i++) { //пробегаемся по всем элементам формы
    el=form.elements[i];
//проверяем только текстовые поля и только если есть чего говорить юзеру в случае ошибки
    if("textarea".indexOf(el.type)<0||el.getAttribute("check_message")==null) continue;
    if((pat=el.getAttribute("check_pattern"))!=null) { //если задан рег
       pat=new RegExp(pat, "g");
       if(!pat.test(el.value)) {
            alert(el.getAttribute("check_message"));
         return false;
       }
    } else if(/^\s*$/.test(el.value)) { //иначе просто проверка что поле не пустое
          alert(el.getAttribute("check_message"));
       return false;
    }
  }
  return true;
}
</SCRIPT>
<div align="center">

      <form method="get" onSubmit="return checkVorname(this);" check_message="Вы не указали название кабака!" action="index.php?pages=otz&go=1">
      <p class="txt9">{$info[err]}

      <table align="center" border="0" cellspacing="10">
        <tr>
                <td><p align="right" class="txt3">
                Название: <input type="text" size="30" name="name" value="">
        </tr>
        <tr valign="top">
                <td><p class="txt3">
                Комментарий:<br>
                <textarea cols="50" rows="10" name="dec" check_message="Вы не заполнили поле для сообщения"></textarea>
                </td>
        </tr>
        <tr valign="top">
                <td><p class="txt3">
                    Оценка:<br>
                    <b>-</b>
                        <input type="radio" value="1" name="bal">
                        <input type="radio" value="2" name="bal">
                        <input type="radio" value="3" name="bal">
                        <input type="radio" value="4" name="bal">
                        <input type="radio" value="5" name="bal" checked>
                        <input type="radio" value="6" name="bal">
                        <input type="radio" value="7" name="bal">
                        <input type="radio" value="8" name="bal">
                        <input type="radio" value="9" name="bal">
                        <input type="radio" value="10" name="bal">
                        <b>+</b>
                </td>
        </tr>
        <tr valign="top">
                <td><p align="center">
                <a class='snos1' href='javascript: void(0);' onclick='this.parentNode.submit()'><img src="images/go.gif" alt="Отправить запрос" border="0"></a>
                </td>
        </tr>
</table>
</form>

</div>




--------------------
Нельзя жить в прошлом, оно уже прошло.
Нельзя жить в будущем, оно ещё не наступило.
Нужно жить в настоящем, помня прошлое и думая о будущем!
PM MAIL WWW ICQ   Вверх
Guest
Дата 25.11.2005, 19:52 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Red Dragon

Навскидку вижу, что ты сабмитишь parentNode ссылки, а это ячейка.
  Вверх
Ciber SLasH
Дата 25.11.2005, 20:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1813
Регистрация: 9.11.2004
Где: С.-Петербург

Репутация: 24
Всего: 67



В ссылке по onClick нужно сабмитить форму, а не родителя как ты пишешь. Как сказал Гость ты пытаешся засабмитить ячейку.

Пиши в onClick либо document.forms[0].submit() где в скобках номер формы во всём документе, либо задай форме ID и пиши document.getElementById(ID).submit() где ID - строка с идентификатором формы.
PM   Вверх
Zeroglif
Дата 25.11.2005, 21:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 644
Регистрация: 22.9.2005

Репутация: 28
Всего: 66



Эт я опять гостем залогинился, сорри, никак не привыкну, что форма отправляется по-тихому...
PM MAIL WWW   Вверх
Sardar
Дата 26.11.2005, 12:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бегун
****


Профиль
Группа: Модератор
Сообщений: 6986
Регистрация: 19.4.2002
Где: Нидерланды, Groni ngen

Репутация: 78
Всего: 317



Red Dragon это же я дал тебе код с parentNode, только вёрстка была другая, там форма была прямым потомком ссылки. Далее по аналогии, сколько предков у ссылки, столько parentNode или данном случае лучше брать форму по id.


--------------------
 Опыт - сын ошибок трудных  © А. С. Пушкин
 Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik
 Оценить мои качества можно тут.
PM   Вверх
Gold Dragon
Дата 27.11.2005, 10:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Призрачный
****


Профиль
Группа: Экс. модератор
Сообщений: 6753
Регистрация: 1.3.2004
Где: Россия, Тамбов

Репутация: 1
Всего: 71



Sardar
да я и не спорю, я не стал просто там эту телу развивать smile
Добавлено @ 10:28
увлёкшись PHP совсем забыл JavaScript smile


--------------------
Нельзя жить в прошлом, оно уже прошло.
Нельзя жить в будущем, оно ещё не наступило.
Нужно жить в настоящем, помня прошлое и думая о будущем!
PM MAIL WWW ICQ   Вверх
Gold Dragon
Дата 28.11.2005, 10:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Призрачный
****


Профиль
Группа: Экс. модератор
Сообщений: 6753
Регистрация: 1.3.2004
Где: Россия, Тамбов

Репутация: 1
Всего: 71



Ничего не понимаю... форма всё равно отправляется без проверки
Код

<script type="text/javascript">
 function checkVorname(form) {
  var el, pat;
  for(var i=0; i<form.elements.length; i++) { 
    el=form.elements[i];
    if("textarea".indexOf(el.type)<0||el.getAttribute("check_message")==null) continue;
    if((pat=el.getAttribute("check_pattern"))!=null) {
       pat=new RegExp(pat, "g");
       if(!pat.test(el.value)) {
            alert(el.getAttribute("check_message"));
         return false;
       }
    } else if(/^\s*$/.test(el.value)) {
          alert(el.getAttribute("check_message"));
       return false;
    }
  }
  return true;
}
</SCRIPT>
        <DIV align="center">
            <FORM method="post" onSubmit="return checkVorname(this);" action="index.php?pages=otz&go=1">
                <p>Название:<INPUT type="text" size="30" check_message="Вы не указали название кабака!" name="name" value="Кикимора1">
                <p>Комментарий:<BR>
                <TEXTAREA cols="50" rows="10" name="dec" check_message="Вы не заполнили поле для сообщения"></TEXTAREA>
                <p>Оценка:<BR><B>-</B>                
                <INPUT type="radio" value="1" name="bal">                
                <INPUT type="radio" value="2" name="bal">                
                <INPUT type="radio" value="3" name="bal">                
                <INPUT type="radio" value="4" name="bal">                
                <INPUT type="radio" value="5" name="bal" checked>                
                <INPUT type="radio" value="6" name="bal">                
                <INPUT type="radio" value="7" name="bal">                
                <INPUT type="radio" value="8" name="bal">                
                <INPUT type="radio" value="9" name="bal">                
                <INPUT type="radio" value="10" name="bal">
                <p><A class='snos1' href='javascript: void(0);' onClick='document.forms[0].submit()'><IMG src="images/go.gif" alt="Отправить запрос" border="0"></A>
            </FORM>




--------------------
Нельзя жить в прошлом, оно уже прошло.
Нельзя жить в будущем, оно ещё не наступило.
Нужно жить в настоящем, помня прошлое и думая о будущем!
PM MAIL WWW ICQ   Вверх
Ciber SLasH
Дата 28.11.2005, 14:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1813
Регистрация: 9.11.2004
Где: С.-Петербург

Репутация: 24
Всего: 67



Сделай так:
1) в onSubmit формы впиши: onSubmit="return false"
2) вместо ссылки лучше юзай: <input type="image" onClick='if (checkVorname(this.form)) this.form.submit()' src='images/go.gif' alt="Отправить запрос">
PM   Вверх
Gold Dragon
Дата 28.11.2005, 15:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Призрачный
****


Профиль
Группа: Экс. модератор
Сообщений: 6753
Регистрация: 1.3.2004
Где: Россия, Тамбов

Репутация: 1
Всего: 71



Ну наконец то всё заработало!!!


--------------------
Нельзя жить в прошлом, оно уже прошло.
Нельзя жить в будущем, оно ещё не наступило.
Нужно жить в настоящем, помня прошлое и думая о будущем!
PM MAIL WWW ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию.
 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0500 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.