2015-01-26 5 views
-2

Я хочу сделать опрос на своем веб-сайте для того, чтобы создать форму php. Форма выглядит так.Форма Php отправляется без отправки

<?php  
    function survey(){ 
?> 
     <script> 
      $(document).ready(function(){ 
       $("intro").show(); 
       $("q1").hide(); 
       $("q2").hide(); 
      $("#continue").click(function(){ 
       $("intro").hide(); 
       $("q1").show(); 
      }); 
      $("#continue1").click(function(){ 
       $("intro").hide(); 
       $("q1").hide(); 
       $("q2").show(); 
      }); 
      $("#continue2").click(function(){ 
       $("q2").hide(); 
      }); 
      }); 
     </script> 
     <intro> 
      <p>Understanding of ...</p> 
      <button id="continue">Continue</button> 
     </intro> 
     <form name="survey" action="<?php echo $_SERVER['PHP_SELF'];?>" id="survey"> 
      <q1> 
      <p>[Q01]A balloon ...?</p> 
      <input type="radio" name="q1" value="r">(a) The internal energy of the gas decreases from its initial value, but the enthalpyremains constant<br> 
      <input type="radio" name="q1" value="w">(b) The internal energy of the gas increases from its initial value, but the enthalpyremains constant<br> 
      <input type="radio" name="q1" value="w">(c) Both internal energy and enthalpy of the gas remain constant</br> 
      <input type="radio" name="q1" value="w">(d) Both internal energy and enthalpy of the gas increase</br> 
      <input type="radio" name="q1" value="w">e) Nothing can be inferred because the system is not in equilibrium</br> 
      <button id="continue1">Continue</button> 
      </q1> 
      <q2> 
      <p>[Q02] A system is ...</p> 
      <input type="radio" name="q2" value="w">(a) Q1 = Q2 b. W1<br> 
      <input type="radio" name="q2" value="w">(b) W1 + Q1 = Q2 + W2</br> 
      <input type="radio" name="q2" value="w">(c) W1 = W2 d. Q1</br> 
      <input type="radio" name="q2" value="r">(d) Q1 – W1 = Q2 – W2</br> 
      <button id="continue2">Continue</button> 
      <input type="submit" value="submit" id="submit"> 
      </q2> 
     </form> 
<?php 
    } 
?> 

На другой странице php я вызываю эту функцию для отображения этой формы.

Ожидается, что форма будет работать, когда пользователь загрузит страницу, которую отобразит div, и когда пользователь нажимает кнопку продолжения, на которой будет загружен div, ожидается, что она будет продолжена следующим образом.

Но что именно Случается когда пользователь нажимает кнопку продолжить кнопку с интро форма будет работать, как мы ожидали, а затем снова пользователь нажмет кнопку продолжить интро скроет и q1 покажет, когда пользователь снова нажмите кнопку продолжить форма отправляется без нажатия кнопки отправки, что не так с этим и как решить эту проблему ?.

Форма должна подаваться только после нажатия кнопки отправки.

+1

Improved Youre Форматирование немного и увидел, что Youre jusing много недействительных HTML теги, как ''

+0

Учитывая, что это XHTML (он выглядит) да ''
недействителен. – Rafael

ответ

1

A <button> без type объявлено по умолчанию type="submit". Вы можете избежать неожиданных представленнят, изменив его type="button"

<button type="button" id="continue1">Continue</button> 

В качестве альтернативы в обработчике щелчка вы можете предотвратить событие по умолчанию

$("#continue1").click(function(evt){ 
    evt.preventDefault(); 

    /* other code*/ 
}); 

Я не вижу, как любой из скрыть/показать код может потому что все ваши селекторы jQuery недействительны. Они все ищут тэгов, которых не существует.

$("q1") будет соответствовать <q1> тег не те элементы, которые у вас есть в форме. Вы должны провести некоторое время в selectors section of jQuery API

+1

Спасибо, это то, что я пропустил. –

Смежные вопросы