2014-04-16 53 views
-2

我試圖發送一個表格到電子郵件,但我想名稱字段進行驗證(如果沒有內容,則不發送) 我無法驗證,然後通過PHP腳本結束我有正確的工作 I have created a jsfiddle at the following link 有人可以幫忙嗎?發送之前需要驗證表格

$(document).ready(function() { 
$('.form-horizontal').on('submit', function (e) { 

    e.preventDefault(); 
    var name = $('#name').val(); 
    if (!name) { 
     showError(); 
    } 
    else { 
     $('#contact-form').submit(); 
    } 

}); 

function showError() { 

    $('.tyler-error').show(); 
} 

}); 
+1

「我無法得到它的工作。」繼續... – Bucket

+2

永遠不要依賴於客戶端驗證。無論您是否能夠正常工作,您仍然需要在服務器上進行驗證。 –

+4

你忘了在小提琴中選擇jquery庫。 http://jsfiddle.net/4TuVU/4/ – karthikr

回答

3

Working fiddle

在你的小提琴,你沒有從庫下拉列表中選擇jQuery的。其次,您應該避免在提交處理程序中提交表單,而應該在preventDefault(如果存在驗證錯誤)時提交表單。

$('.form-horizontal').on('submit', function (e) { 
    var name = $('#name').val(); 
    if (!name) { 
     showError(); 
     e.preventDefault(); 
    } 
}); 

如果你真的想保持代碼,因爲它是,你需要調用的形式提交功能,而不是jQuery的提交功能:

$('#contact-form')[0].submit(); 
// or 
$('#contact-form').get(0).submit(); 

這裏,[0].get(0)是給你的普通的JavaScript DOM元素,不包含jQuery包裝,因此您可以撥打submit()

1

HTML5提供輸入驗證,您可以設置爲了告訴瀏覽器您的html視圖是HTML5。

//Set your doctype for HTML5. 
<!doctype html> 
<html> 
<head> 
    <title></title> 
</head> 
<body> 
    <form id="the_form"> 
     //here html5 will not submit if the box is empty or does not meet the email 
     //addres format. 
     <input type="email" name="email" id="email" placeholder="Enter email.."> 
     <input type="submit" value="send"> 
    </form> 
</body> 
</html> 

如果你不想使用HTML5,你也可以做,如果輸入的是空一個簡單的JavaScript代碼無法提交。

<html> 
<head> 
    <title></title> 
    <script type="text/javascript"> 
    window.onload = init(); 

    function init(){ 
     //get form. 
     var form = document.getElementById("the_form"); 

     form.onsubmit = email_validation; 
    } 

    function email_validation(){ 
     email = document.getElementById("email"); 

     if(email.value == ''){ 
      //return false to avoid submission. 

      return false; 
     } 
     else{ 
      //do whatever code. 
     } 
    } 
    </script> 
</head> 
<body> 
    <form id="the_form"> 
     <input type="text" name="email" id="email" placeholder="Enter email.."> 
     <input type="submit" value="send"> 
    </form> 
</body> 
</html> 

用這種方式,您的電子郵件將在發送之前進行驗證,希望爲您工作。