2013-11-10 97 views
0

有人能告訴我我的jQuery驗證有什麼問題嗎?這不是驗證我的表單,而是忽略導致不檢查輸入的代碼。繞過jQuery表單驗證

形式:

<form class="form" accept-charset="UTF-8" action="URL-to-complete-form" method="POST" onsubmit="return validateForm();"> 
<input class="form-name" type="text" placeholder="Name"></div> 
<input class="form-email" type="text"placeholder="Email"></div> 
<input style="background-color: #fc8f12;" type="submit" value="Subscribe"> 
</div> 
</form> 

的Javascript:

function validateForm() 
{ 
    // Validate Name 
    var title = $(".form-name").val(); 
    if (title=="" ||title=="Name" || title==null) { } else { 
     alert("Please enter a name!"); 
    } 

    // Validate Email 
    var email = $(".form-email").val(); 
    if ((/(.+)@(.+){2,}\.(.+){2,}/.test(email)) || email=="" || email=="Email" || email==null) { } else { 
     alert("Please enter a valid email"); 
    } 
    return false; 
} 

謝謝大家的時間和幫助。

+0

您是否檢查過瀏覽器的控制檯是否有任何錯誤? –

+0

肯定有一個錯誤,你的JavaScript是讓表單提交..檢查你的控制檯,並解決錯誤.. –

+0

你的函數總是返回false – rybo111

回答

0

對我來說,看起來你並沒有做任何事情來阻止表單被提交,因爲你在表單中有「action =」行......你在提交時告訴它,兩個都運行javascript函數並提交表單。驗證後,您應該讓JavaScript提交表單。有很多方法可以做到這一點......可能最簡單的方法是使提交按鈕成爲類型按鈕而不是類型提交,然後將驗證和提交綁定到該按鈕的點擊。

0

由於您正在「插入」提交回傳以進行驗證,請將您的代碼清除,從表單中移除提交按鈕,根據按鈕單擊進行驗證並使用有效的自定義回傳進行驗證數據:

<form class="form" accept-charset="UTF-8" method="POST" action="#"> 
     <input class="form-name" type="text" placeholder="Name"></div> 
     <input class="form-email" type="text" placeholder="Email"></div> 
     </div> 
    </form> 
    <button>Subscribe</button> 

$(function() { 
      $('button').on('click', function (event) { 
       validateForm(); 
      }); 

     }); 

     function validateForm() { 
      // Validate Name 
      var title = $(".form-name").val(); 
      if (!title) { 
       alert("Please enter a name!"); 
       return false; 
      } 

      // Validate Email 
      var email = $(".form-email").val(); 
      if (!email) { 
       alert("Please an email address"); 
       return false; 
      } 

      if (!/(.+)@(.+){2,}\.(.+){2,}/.test(email)) { 
       alert("Please enter a valid email"); 
       return false; 
      } 

      $.post('URL-to-complete-form', $("form").serialize(), function (data) { 
       console.log('server call complete'); 
       console.log(data); 
      }); 

     } 

這裏是一個工作的jsfiddle太:http://jsfiddle.net/t8vQ2/

0

HTML:

<form id="form1" ... 

的jQuery:

$("#form1").on("submit", function(){ 
    if($("input[name=firstName]").val() == ""){ 
    // errors here 
    return false; 
    } 
});