в чем ошибка submit() не работает

Тема в разделе "Как сделать...", создана пользователем sympler, 7 июн 2010.

Статус темы:
Закрыта.
  1. sympler

    sympler Постоялец

    Регистр.:
    24 окт 2008
    Сообщения:
    131
    Симпатии:
    6
    не работает javascript функция submit() она не отправляет форму, почему не знаю, перепробовал кучу вариантов

    PHP:
    <?php 
        
    // проверяем произошла ли отправка формы
    if(isset($_POST['opros']) or isset($_POST['var1']))
    {
       
    //вводные данные 
       
       
    echo "<br><br>Отправка произошла<br><br>";
       
    }

    ?>

    <script language="javascript">
    <!--
    var check = 2; //немного обрезал ненужный код, просто данная переменная возвращает количество выбранных вариантов


    function checkSubmit() 
    {
      
      if (check ==  '0')
      {
         alert ( 'Вы не выбрали ни одного варианта ответа') ;
      }
      else
      {
        document.getElementById("myTest").submit();  // вот эта хрень не отправляет форму, перепробовал все варианты!!!

      } 
    }

    //-->
    </script>

    <form action="./opros.php" method="POST" id="myTest" name="myTest" >

    <input type="checkbox" value="1" id="chek1" onclick="checkCheck(this)" name="var1" />1<br>
    <input type="checkbox" value="2" id="chek2" onclick="checkCheck(this)" name="var2" />2<br>
    <input type="checkbox" value="3" id="chek3" onclick="checkCheck(this)" name="var3" />3<br>
    <input type="checkbox" value="4" id="chek4" onclick="checkCheck(this)" name="var4" />4<br>
    <input type="checkbox" value="5" id="chek5" onclick="checkCheck(this)" name="var5" />5<br>
    <input type="checkbox" value="6" id="chek6" onclick="checkCheck(this)" name="var6" />6<br>
    <input type="checkbox" value="7" id="chek7" onclick="checkCheck(this)" name="var7" />7<br>
    <input type="checkbox" value="8" id="chek8" onclick="checkCheck(this)" name="var8" />8<br> 
    <input type="checkbox" value="9" id="chek9" onclick="checkCheck(this)" name="var9" />9<br>
    <input type="checkbox" value="10" id="chek10" onclick="checkCheck(this)" name="var10" />10<br>

    <input type="button" value="Проголосовать"  name="opros" onClick="checkSubmit()" /><br>

    </form>
     
  2. Belial

    Belial

    Регистр.:
    1 фев 2010
    Сообщения:
    236
    Симпатии:
    113
    PHP:
    <input type="button" value="Проголосовать"  name="opros" onClick="checkSubmit()" /><br>
    замени на
    PHP:
    <input type="submit" value="Проголосовать"  name="opros" onClick="checkSubmit()" /><br>
    А вообще форма и так отправляется, просто проверку на isset не проходит, если пункт 1 при отправке не выбран.
     
    sympler нравится это.
  3. sympler

    sympler Постоялец

    Регистр.:
    24 окт 2008
    Сообщения:
    131
    Симпатии:
    6
    так пробовал, отправлка формы в таком случае происходит всегда
    я же для проверки писал функцию checkSubmit() которая проверяет если хоть один вариант отмечен тогда происходит отправка формы если нет то выскакивает alert но отправка происходить не должна, а при type=submit отправка все равно происходит, а при button - не реагирует вообще, поэтому я и написал что неработает JS функция submit()

    даже если укажу var check = 0; форма все равно отпарвляется
     
  4. Belial

    Belial

    Регистр.:
    1 фев 2010
    Сообщения:
    236
    Симпатии:
    113
    То ли я вопроса не понял, то ли у меня всё работает. Пробовал в ишаке, опере и фаерфоксе первоначальный вариант скрипта - везде форма отправляется, просто не пишет "Отправка произошла" если первый чекбокс не отметить.
     
  5. wal

    wal Постоялец

    Регистр.:
    24 мар 2008
    Сообщения:
    89
    Симпатии:
    30
    такое очень легко сделать например с помощью jQuery...

    если актуально, код напишу...
     
  6. diavolic

    diavolic

    Регистр.:
    17 мар 2010
    Сообщения:
    522
    Симпатии:
    102
    замени

    Код:
    <input type="button" value="Проголосовать"  name="opros" onClick="checkSubmit()" /><br> 
    
    на
    Код:
    <input type="button" value="Проголосовать"  name="opros" onClick="if (checkSubmit()) this.submit()" /><br> 
    и измени функцию приблизительно вот так:

    Код:
    function checkSubmit()  
    { 
       
      if (!check) 
      { 
         alert ( 'Вы не выбрали ни одного варианта ответа') ; 
      } 
      return (check!=0);
    }
    
     
Статус темы:
Закрыта.