За последние 24 часа нас посетили 19805 программистов и 1656 роботов. Сейчас ищут 1427 программистов ...

Не запускается скрипт в моей форме...

Тема в разделе "JavaScript и AJAX", создана пользователем ЗАБАВА, 11 фев 2010.

  1. ЗАБАВА

    ЗАБАВА Активный пользователь

    С нами с:
    27 янв 2010
    Сообщения:
    20
    Симпатии:
    0
    Адрес:
    Deutschland
    HTML:
    1. <form action="sendmail.php" method="post" id="contact-form" onsubmit="return chekForm();">
    2. <label><b>Ваше имя</b>
    3. <input type="text" name="name" value="" />
    4. ...
    5. <b>Сообщение:</b>
    6. <textarea name="text" rows="" cols=""></textarea>
    7.                          
    8. <a href="#" onclick="document.getElementById('contact-form').submit()"><span><span>Отправить</span></span></a>
    9. <a href="#" onclick="document.getElementById('contact-form').reset()"><span><span>Стереть</span></span></a>
    10. </form>
    Почему-то onsubmit="return chekForm();" не запускается - что не так?
    Пробовала с кнопкой <input type="submit" value="Отправить" /> запускается...
     
  2. Simpliest

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

    С нами с:
    24 сен 2009
    Сообщения:
    4.511
    Симпатии:
    2
    Адрес:
    Донецк
    Где сама функция chekForm()?

    Сколько вас человек под этим акаунтом пишет? то мальчики, то девочки.
     
  3. ЗАБАВА

    ЗАБАВА Активный пользователь

    С нами с:
    27 янв 2010
    Сообщения:
    20
    Симпатии:
    0
    Адрес:
    Deutschland
    Функция chekForm() в .js файле.

    Говорю же если кнопку ставлю <input type="submit" value="Отправить" /> то запускается и исполняется правильно... А вот при таком способе -
    HTML:
    1. <a href="#" onclick="document.getElementById('contact-form').submit()"><span><span>Отправить</span></span></a>
    -
    не работает...

    Я - девочка :))) была есть и буду...
     
  4. Simpliest

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

    С нами с:
    24 сен 2009
    Сообщения:
    4.511
    Симпатии:
    2
    Адрес:
    Донецк
    Код ее приведите.

    Собственно проблема именно в
    onsubmit="return chekForm();"

    поскольку если из функции chekForm() возращается не true, то форма не сабмитится.

    И cheCkForm(), пожалуй, все же
     
  5. ЗАБАВА

    ЗАБАВА Активный пользователь

    С нами с:
    27 янв 2010
    Сообщения:
    20
    Симпатии:
    0
    Адрес:
    Deutschland
    [js]
    function chekForm(){
    feldName = new Array ("name", "email", "text");
    feldShow = new Array ("Ваше имя", "Ваш еmail-адрес", "Сообщение");
    var i,j;

    for (j=0; j < feldName.length; j++){
    for (i=0; i < document.forma.length; i++) {
    if (document.forma.elements.name == feldName[j] && document.forma.elements.value == "") {
    alert ('Поле "' + feldShow[j] + '" не заполнено.');
    document.forma.elements.focus();
    return false;
    }
    }
    }
    return true
    }
    [/js]
     
  6. Simpliest

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

    С нами с:
    24 сен 2009
    Сообщения:
    4.511
    Симпатии:
    2
    Адрес:
    Донецк
    Тьфу :) Невнимательно прочитал в чем проблема.

    form.submit() не вызывает событий onsubmit

    Для того чтобы сработала проверка необходимо сделать так

    HTML:
    1. <a href="#" onclick="submitForm()"><span><span>Отправить</span></span></a>
    2. <script type="text/javascript">
    3. function submitForm()
    4. {
    5.     if (chekForm()){
    6.         document.getElementById('contact-form').submit();
    7.     } else {
    8.        return false;
    9.     }
    10. }
    11.  
     
  7. ЗАБАВА

    ЗАБАВА Активный пользователь

    С нами с:
    27 янв 2010
    Сообщения:
    20
    Симпатии:
    0
    Адрес:
    Deutschland
    Спасибо!!!
     
  8. ЗАБАВА

    ЗАБАВА Активный пользователь

    С нами с:
    27 янв 2010
    Сообщения:
    20
    Симпатии:
    0
    Адрес:
    Deutschland
    Заработало, но почему-то страница стала толи перегружаться совсем, но не похоже, а то бы курсор (фокус) исчезал, а он прыгает в нужное поле и там остаётся, но страница не остаётся на соём месте - она стала возвращаться к свому началу...
     
  9. Simpliest

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

    С нами с:
    24 сен 2009
    Сообщения:
    4.511
    Симпатии:
    2
    Адрес:
    Донецк
    Абсолютно не понятен вопрос.

    Проверить отправились ли данные из формы можно добавив в файле sendmail.php

    var_dump($_POST);
     
  10. ЗАБАВА

    ЗАБАВА Активный пользователь

    С нами с:
    27 янв 2010
    Сообщения:
    20
    Симпатии:
    0
    Адрес:
    Deutschland
    Сори, вспомнила, это же из-за href="#" ... Давно уже HTML-ом не занималась....

    Да-да данные отправляются из формы - тут всё чики-пики!!!