Dụng javascript lấy dữ liệu từ form
Yêu cầu:Giao diệnTạo giao diện như sau:Hướng dẫnHọc JQuery | NenTang.vn Link minh họahttp://frontend-basic.learning.nentang.vn/course-jquery/thu-thap-du-lieu-nguoi-dung-nhap-trong-form-bang-jquery/index.htmlLàm form bằng HTML và chỉnh sửa lại giao diện cho đẹp với CSS không khó, bạn chỉ cần nhớ mấy cái input type là OK. Show
Vấn đề nằm ở Validate, tức là chuẩn hóa dữ liệu nhập vào và một số yêu cầu khác nữa. HTML5 làm form cũng rất tốt, nhưng có hạn chế là chưa được hỗ trợ rộng rãi và thống nhất giữa các trình duyệt, do vậy chúng ta vẫn phải cậy nhờ khá nhiều vào Javascript. Về sau bạn sẽ biết ngoài việc bắt lỗi dữ liệu tại máy khách thì chúng ta còn phải kiểm tra dữ liệu một lần nữa tại Server cho chắc ăn bằng một ngôn ngữ lập trình web kiểu như PHP hoặc ASP.Net… Nhưng đấy là về sau! Hiện tại chúng ta chỉ quan tâm tới Javascript thôi nhé. Có vẻ chém gió hơi nhiều, giờ sẽ vào đề ngay. Chẳng hạn tôi có Form phải bắt lỗi trong các trường hợp sau:
Thực tế là tôi đã viết code Javascript cho Form trên rồi, giờ bạn nhấn nút Đăng Ký Mua là biết liền, và thử xem nó có bắt lỗi đúng như yêu cầu không. Code mẫu:
Bây giờ tôi sẽ giải thích code. Mục lục
Thẻ mở Form
2 cái action=”#” và method=”post” được dùng cho việc gửi dữ liệu lên máy chủ server nên hiện bạn không cần phải quan tâm, chúng ta chỉ cần để ý đến tên của Form ở thuộc tính name=”myForm” và nơi xử lý dữ liệu qua 0 chính là tên hàm mà trong đó ta xây dựng code Javascript để bắt lỗi. Ta để onsubmit có nghĩa là, khi người dùng nhấn nút submit thì dữ liệu được chuyển đến hàm 1Thẻ inputMột thẻ input mẫu trong bài trên có dạng như này:
Tôi sử dụng type là text, 6 trường đầu tiên tôi sử dụng type này, trường Thanh toán là type radio, nút Đăng Ký Mua là type submit, nút Xóa là type reset.Điều quan trọng trong thẻ input chính là name của nó. Chính thông qua name của Form và của Input mà Javascript lấy được dữ liệu nhập vào. Lấy dữ liệu từ inputĐoạn code mẫu để lấy dữ liệu từ thẻ input:
Như đoạn code trên có nghĩa là bạn lấy giá trị của thẻ input có tên là “ten” trong Form có tên là “myForm” và gán giá trị lấy được này vào biến var ten Tương tự cho email:
Không được bỏ trống dữ liệu:
Theo đó, sau khi lấy được dữ liệu từ thẻ input và gán vào biên ten, chương trình dùng hàm if để kiểm tra ten có rỗng hay không – 2. Nếu thỏa mãn điều kiện rỗng sẽ có hộp thông báo “Tên không được để trống” và ta dùng hàm alert để điều khiển tác vụ này, cuối cùng return false.Kiểm tra dữ liệu nhập vào có phải là số không
Hàm dùng để kiểm tra số đó là 3 – viết tắt của is Not a Number. Nếu isNaN trả về giá trị 4 nghĩa là đó không phải là một số.Kiểm tra Email hợp chuẩnCó lẽ với đa số mọi người thì đây là code phức tạp nhất (với tôi cũng thế). Địa chỉ email chính xác phải thỏa mãn điều kiện sau:
Code mẫu:
Chúng ta cần chú ý đến lệnh 5, nó sẽ xác định số ký tự đứng trước nó tính từ trái sang. Ví dụ, email [email protected] có giá trị 6 là 2 vì có 2 ký tự là a và b đứng trước 7 có giá trị là 5 vì có 5 ký tự đứng trước dấu . là a, b, @, x, y;Nếu không có ký tự cần tìm trong chuỗi, hàm 5 sẽ trả về -1.Đến đây bạn tự hỏi 9 có ý nghĩa gì. Hết sức chú ý chữ last. Lệnh này cũng là xác định số ký tự đứng trước dấu chấm nhưng là dấu chấm cuối cùng.Chẳng hạn email [email protected], thế thì dấu chấm cuối cùng là dấu chấm sau chữ gmail chứ không phải sau chữ xyz. Giờ chúng ta cùng tìm hiểu ý nghĩa code:
Chỉ có 2 trường hợp xảy ra khi aCong<1:
Sau @ phải có ít nhất 1 ký tự sau đó mới đến dấu chấm do đó, email hợp chuẩn thì số ký tự đứng trước dấu chấm luôn lớn hơn số ký tự đứng trước @ ít nhất 2 đơn vị – tức là 1, ngược lại điều này thì email đó không hợp lệ, nói cách khác là: 2Lệnh trên chúng ta đã ép phải tồn tại dấu chấm trong email, ngoài ra nó cũng buộc giữa dấu chấm cuối cùng và email phải có ít nhất 1 ký tự. |