2012-01-03 38 views
10

Tôi cần xác thực đầu vào bằng JavaScript và jQuery khi ai đó gửi biểu mẫu bản tin của tôiLỗi jQuery gửi mẫu xác nhận

vì một số lý do không hoạt động. nó gửi biểu mẫu mà không cảnh báo bất kỳ lỗi nào

Dưới đây là những gì tôi có cho đến nay:

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.1/jquery.min.js"></script> 
    <script type="text/javascript"> 

    $(document).ready(function(){ 
    function go() { 
     if($('#name').val() == '') { 
      alert('error: name is required'); 
     } 
     $('form').submit(); 
    } 
    }); 


    </script> 
    </head> 

    <form method="post" action=""> 
    Name *<input type="text" name="name" id="name"/> 
    E-Mail *<input type="text" name="email" id="email"/> 

    <input class="submit" type="submit" value="Submit" name="submit" id="submit" onclick="go();"> 
    </form> 

Tại sao tôi không thấy cảnh báo khi tôi không đặt bất cứ điều gì trong tên và sau đó gửi biểu mẫu?

+0

tôi khuyên bạn nên sử dụng: [Xác thực jQuery] (http://docs.jquery.com/Plugins/Validation) –

Trả lời

15

Thay vì sử dụng onclick trên nút gửi, hãy sử dụng onsubmit="return go(); trên phần tử biểu mẫu. Hoặc, sử dụng jQuery $('form').submit(function(){ ... });

Và sau khi bạn gặp phải lỗi, bạn cần phải return false từ chức năng này để ngăn không cho nó thực hiện thêm nữa.

+0

Mặc dù về mặt kỹ thuật chính xác, tôi khuyên bạn không nên sử dụng xác thực phía máy khách và đặc biệt là chống lại việc sử dụng 'alert()' hộp để hiển thị lỗi. –

+1

bạn có thể giải thích ý của bạn không? –

+0

@ liho1eye tại sao bạn nên tư vấn chống lại nó? Nó chỉ là một phần. Xác thực phía máy chủ là cần thiết, nhưng xác thực phía máy khách giúp ngăn chặn biểu mẫu được đăng lên máy chủ để xử lý nếu nó chưa hoàn tất. Giúp tiết kiệm thời gian và yêu cầu http. – dakdad

Các vấn đề liên quan