Bài 28: Validate Form bằng Javascript

Ngày đăng: 2024-04-13 21:09:23

Mục lục:

            1. Bài toán validate form bằng Javascript

            2. Tạo các function Javascript hỗ trợ validate form

            3. Các bước validate form bằng Javascript              

 

1. Bài toán validate form bằng Javascript

Trước tiên bạn hãy tạo một form đăng ký thành viên gồm các thông tin: Tên đăng nhập, mật khẩu, điện thoại, email, và cuối cùng là địa chỉ.

<form method="post" action="" id="loginform">

    <table border="1" cellpadding="10">

        <tr>

            <td>Tên đăng nhập: </td>

            <td>

                <input type="text" id="username" name="username" value=""/>

                <span id="username_error"></span>

            </td>

        </tr>

        <tr>

            <td>Mật khẩu: </td>

            <td>

                <input type="text" id="password" name="password" value=""/>

                <span id="password_error"></span>

            </td>

        </tr>

        <tr>

            <td>Nhập lại mật khẩu: </td>

            <td>

                <input type="text" id="repassword" name="repassword" value=""/>

                <span id="repassword_error"></span>

            </td>

        </tr>

        <tr>

            <td>Phone: </td>

            <td>

                <input type="text" id="phone" name="phone" value=""/>

                <span id="phone_error"></span>

            </td>

        </tr>

        <tr>

            <td>Email </td>

            <td>

                <input type="text" id="email" name="email" value=""/>

                <span id="email_error"></span>

            </td>

        </tr>

 

        <tr>

            <td>Địa chỉ </td>

            <td>

                <input type="text" id="address" name="address" value=""/>

                <span id="address_error"></span>

            </td>

        </tr>

 

        <tr>

            <td></td>

            <td>

 

                <input type="submit" onclick="return validate();" id="btn" name="btn" value="Đăng ký"/>

            </td>

        </tr>

    </table>

</form>

Và đây là yêu cầu của bài toán:

  • Username không được trống, tối thiểu 5 ký tự, ko chứa ký tự đặc biệt
  • Mật khẩu không được trống, tối thiểu 8 ký tự
  • Mật khẩu nhập lại phải trùng
  • Phone phải là những con số và 10 ký tự
  • Email phải đúng định dạng, va không được để trống.

2. Tạo các function Javascript hỗ trợ validate form

Phần HTML đã xong rồi, bây giờ ta bắt đầu code Javascript.

Trước tiên bạn hãy tạo cho mình hai function bổ trợ như sau:

// Lấy giá trị của một input

function getValue(id){

    return document.getElementById(id).value.trim();

}

 

// Hiển thị lỗi

function showError(key, mess){

    document.getElementById(key + '_error').innerHTML = mess;

}

Trong đó function getValue dùng để lấy giá trị của một thẻ input, tham số truyền vào chính là ID của thẻ cần lấy.

Function showError dùng để hiển thị nội dung lỗi, nó sẽ gắn nội dung vào thẻ span mà ta đã khai báo ở phần HTML.

3. Các bước validate form bằng Javascript

Bây giờ ta bắt đầu xử lý từng điều kiện một nhé.

Bạn có thấy trong button Đăng Ký mình có bổ sung một function vào sự kiện click không?

<input type="submit" onclick="return validate();" id="btn" name="btn" value="Đăng ký"/>

Ta hãy tạo một function tên là validate nhé.

function validate()

{

    // Code validate tại đây

}

Bây giờ ta sẽ code validate cho nó vào trong function này.

function validate()

{

    var flag = true;

     

    // 1 username

    var username = getValue('username');

    if (username == '' || username.length < 5 || !/^[a-zA-Z0-9]+$/.test(username)){

        flag = false;

        showError('username', 'Vui lòng kiểm tra lại Username');

    }

     

    // 2. password

    var password = getValue('password');

    var repassword = getValue('repassword');

    if (password == '' || password.length < 8 || password != repassword){

        flag = false;

        showError('password', 'Vui lòng kiểm tra lại Password');

    }

     

    // 3. Phone

    var phone = getValue('phone');

    if (phone != '' &&  !/^[0-9]{10}$/.test(phone)){

        flag = false;

        showError('phone', 'Vui lòng kiểm tra lại Phone');

    }

     

    // 4. Email

    var email = getValue('email');

    var mailformat = /^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$/;

    if (!mailformat.test(email)){

        flag = false;

         

        showError('phone', 'Vui lòng kiểm tra lại Email');

    }

     

    return flag;

}

 

Về bài trước...

                                 Bài tiếp theo...

 

 


Tài liệu lập trình PHP

Bài viết trong cùng chuyên mục

Góc games giải trí (chơi trực tiếp trên web) Đăng nhập (chơi có thưởng)Hướng dẫn chơi nhận thưởng



Cờ caro


Butterfly


Lật hình (luyện trí nhớ)

Cờ tướng ONLINE

Xếp hình

Ghép hình

15_PUZZLE

Kill ghosts

Banchim

Planet Defense

Tower game

Bắn bóng

Plapy Bird (NH.Đông)

Diablo

Vẽ hình cứu người

Game Phases

Game vui chơi có thưởng

Game bắn cá

Street Fight (Chơi trên điện thoại và máy tính bảng)

Street Fight (Chơi trên máy tính và laptop)



0379136392

Thông tin liên hệ: Lê Văn Thuyên - ĐT: 0379136392 ; Gmail: lethuyen0379136392@gmail.com

 +   Lê Văn Thuyên-0379136392:Cảm ơn quý vị và các bạn đã vào Website của Lê Thuyên! Lê thuyên rất mong nhận được sự góp ý của quý vị và các bạn. Xin chân thành cảm ơn!

 *   Dũng Trung-090567448:Lê Văn Thuyên0379136392--->Ok.Anh!

 *   Bé Nguyễn-benguyen@gmail,com:Lê Văn Thuyên0379136392--->Good job!

 +   KTT-0362497726:Ok! Mình rất thích trang web của bạn.

 +   HoangQuan-0985073641:Cần tạo nhiều game hay nữa em!

 *   Lê Thuyên-0379136391:HoangQuan0985073641--->Ok! Em cảm ơn anh ạ!

 +   Lê Dương-0393499146:Làm thêm game 3D nữa?

 *   Lê Thuyên-0379136392:Lê Dương0393499146--->Sắp có game 3D hay rồi.Tuyệt phẩm nhé kkk

 *   Lê Dương-0393499146:Lê Dương0393499146--->Game Street Fight mới chỉ chơi được trên máy tính phải không anh Titoe?

 *   Lê Thuyên-0379136392:Lê Dương0393499146--->Ừ Em. Anh đang làm điều khiển cho phần Smathhome em.

 *   Lê Thuyên-0379136392:Lê Dương0393499146--->Game Street Fight đã chơi được trên điện thoại rồi nhé em.

 +   L.Ngư-0906744578:Nghiên cứu tích hợp sàn giao dịch tiền ảo đi cu.

 *   Lê Thuyên-0379136392:L.Ngư0906744578--->Đang nghiên cứu Grandma.

 +   Nguyễn Tuyển-0909615882:Thiết kế web đa ngôn ngữ đi em.

 *   Lê Thuyên-0379136392:Nguyễn Tuyển0909615882--->Ok chị!

377954