2012-10-10 24 views
1

我使用表單將一些數據提交給API。此外,我使用recaptcha來避免機器人。有效的表單:返回false不可能/總是開始表單的操作

我的問題:

如果用戶輸入一個錯誤的總和,他會得到一個錯誤警報。但是,錯誤警報之後,劇本始終執行「行動=」 www.test.de」,所以用戶doesn't得到一個機會來糾正輸入。 return false也doesn't工作。

可有人點出了錯誤

腳本:

<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

試試這個:

else { 
    alert('Falsches Ergebnis') 
    document.contact.BotBootInput.focus(); 
    return false; 
} 
+0

它不起作用.... – user1735856

+0

你能分享一個JSFiddle.net的例子嗎? –

0

當你想簡單地丟棄事件:
1.返回false和調用的函數和
2.使用return之前函數名的關鍵字。

所以,最後onclick屬性的值應爲:

onclick="return ValidBotBoot()" 
+0

如果我插入返回:

相關問題