2012-10-10 4 views
1

양식을 사용하여 일부 데이터를 API에 제출합니다. 또한, 나는 봇을 피하기 위해 recaptcha를 사용합니다. 사용자가 잘못된 금액을 입력양식 유효 : false false/불가능 항상 양식의 동작을 시작합니다.

경우, 그 오류 경고를 가져옵니다 내 문제

. 그러나 오류 경고 후에 스크립트는 항상 "action ="www.test.de "을 수행하므로 사용자가 입력을 수정할 기회를 얻지 못합니다. return false도 작동하지 않습니다

누군가가 가리킬 수 있습니까? 오류에서

스크립트 :

<script type="text/javascript"> 
     var a = Math.ceil(Math.random() * 10); 
     var b = Math.ceil(Math.random() * 10); 
     var c = a + b 
     function DrawBotBoot() { 
      document.write("Was ergibt " + a + " + " + b + "? "); 
      document.write("<br/><input id='BotBootInput' type='text' maxlength='2' size='2'/><br/>"); 
     } 

     function ValidBotBoot() { 
      var d = document.getElementById('BotBootInput').value; 
      if(d == c) 
       $('#test_form').submit(function(evt) { 
        evt.preventDefault(); 
        var uvSubdomain = "test"; 
        var uvKey = "xxxxxxxxxxxxxx"; 
        var message = $('#message').val(); 
        var subject = $('#subject').val(); 
        var name = $('#name').val(); 
        var email = $('#email').val(); 
        $.jsonp({ 
         url : 'https://' + uvSubdomain + '.test/tickets/create_via_jsonp.json?callback=?', 
         data : { 
          client : uvKey, 
          ticket : { 
           message : message, 
           subject : ("Anfrage via Landingpage test.de") 
          }, 
          name : name, 
          email : email 
         }, 
         success : function(data) { 
          alert('Herzlichen Dank für Ihre Mitteilung! Wir werden uns umgehend bei Ihnen melden.'); 
          window.open('index.html', '_self', false) 
         }, 
         error : function(d, msg) { 
          alert("Leider konnte die Mitteilung nicht übermittelt werden."); 
         } 
        }); 
        return false; 
       }); 
      else 
       alert('Falsches Ergebnis') 
      document.contact.BotBootInput.focus(); 
      return false; 
     } 
    </script> 

html로 :

<div id="contact_form"> 
          <form id="test_form" name="contact" method="post" action="https://www.test.de"> 
           <label for="name">Name</label> 
           <input type="text" name="name" id="name" value="" class="span3" /> 
           <label for="email">E-Mail</label> 
           <input type="email" name="email" id="email" value="" class="span3" /> 
           <label for="message">Mittteilung</label> 
           <textarea name="message" id="message"></textarea> 
           <div> 
            <script type="text/javascript">DrawBotBoot()</script> 
            <button class="btn btn-primary" onclick="ValidBotBoot()"> 
             Senden 
            </button> 
           </div> 
          </form> 
         </div> 
+0

클릭? 나는 당신이 단추에 제출 단추를 구속력다는 것을 보았다. – Anoop

답변

0

이 시도 :


1. 반환 false 및 호출 된 함수에서 그냥 함수 이름 앞에
2. return 키워드 :
else { 
    alert('Falsches Ergebnis') 
    document.contact.BotBootInput.focus(); 
    return false; 
} 
+0

작동하지 않습니다 .... – user1735856

+0

JSFiddle.net 예제를 공유해주십시오. –

0

단순히 이벤트를 폐기 할3210.

그래서, 결국 onclick 속성의 값은해야한다 : I 버튼에 어떤 행동 당신이 원하는 혼란 스러워요

onclick="return ValidBotBoot()" 
+0

반환 값을 삽입하는 경우 :

관련 문제