PHẦN CƠ BẢN
VÒNG LẶP
DATA TYPES
EVENTS
DOM
BOM
OBJECT
BỔ SUNG
THỰC HÀNH
JAVASCRIPT CĂN BẢN
CÁC CHỦ ĐỀ
BÀI MỚI NHẤT
MỚI CẬP NHẬT

Mẹo sử dụng thuộc tính HTML trong Javascript

Trong bài này mình sẽ giới thiệu đến các bạn một mẹo rất hay khi làm việc với Javascript, đó là sử dụng các thuộc tính của HTML để giải quyết cho yêu cầu của bài toán.

test php

banquyen png
Bài viết này được đăng tại freetuts.net, không được copy dưới mọi hình thức.

Theo lý thuyết thì mỗi thẻ HTML sẽ có một số thuộc tính nhất định, tuy nhiên tùy vào mỗi bài toán mà bạn có thể bổ sung thuộc tính nhằm giúp bài toán được giải quyết đơn giản hơn. Và sau đây mình sẽ lấy một ví dụ đơn giản để bạn hiểu được cách vận dụng thủ thuật này vào bài toán riêng nhé.

Giả sử mình cần viết chương trình như sau: Hãy cho thay đổi số lượng sản phẩm, nếu số lượng nhập bé hơn 0 thì lập tức thông thông báo lỗi, đồng thời thiết lập lại giá trị ban đầu cho số lượng đó.

Mình sẽ khai báo một thẻ input có cấu trúc HTML như sau:

Bài viết này được đăng tại [free tuts .net]

<input type="text" name="product_nums" value="20"/>

Thẻ này cho thấy số lượng ban đầu là 20. Bây giờ viết chương trình cho sự kiện onchange, mỗi khi người dùng đổi số lượng và nếu lớn hơn hoặc bằng 0 thì chấp nhận, bé hơn 0 thì loại bỏ và quay về giá trị ban đầu.

Để làm điều này ta sẽ thay đổi cấu trúc HTML một chút, đó là bổ sung thêm thuộc tính init-value như sau:

<input type="text" name="product_nums" init-value="20" value="20"/>

Thuộc tính init-value mặc dù không phải là của thẻ input nhưng ta có thể thêm vào để giúp lưu trữ giá trị hợp lệ cuối cùng của mỗi lần nhập. Ở đây mình gán bằng 20 chính là thiết lập ban đầu (chưa có thao tác thay đổi).

Code Javascript sẽ như sau:

function validate(obj){
    var value = parseInt(obj.value);
    
    // Nếu nhập giá trị bé hơn 0
    // thì thông báo lỗi và backup lại giá trị ban đầu
    if (value < 0){
        var init_value = obj.getAttribute('init-value');
        obj.value = init_value;
    }
    else {
        // Ngược lại nhập đúng thì 
        // Cập nhật giá trị backup
        obj.setAttribute('init-value', value);    }
}

Và đây là toàn bộ code:

Full Code RUN
<!DOCTYPE html>
<html>
    <head>
        <title>Học javascript tại freetuts.net</title>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <script>
            function validate(obj){
                var value = parseInt(obj.value);

                // Nếu nhập giá trị bé hơn 0
                // thì thông báo lỗi và backup lại giá trị ban đầu
                if (value < 0){
                    var init_value = obj.getAttribute('init-value');
                    obj.value = init_value;
                }
                else {
                    // Ngược lại nhập đúng thì 
                    // Cập nhật giá trị backup
                    obj.setAttribute('init-value', value);
                }
            }
        </script>
    </head>
    <body style="margin: 50px;">
        <input type="text" onchange="validate(this)" name="product_nums" init-value="20" value="20"/>
    </body>
</html>

Trên là mình lấy một ví dụ đơn giản để bạn hiểu được vấn đề cốt lõi của bài toán, đó chính là tự ý khai báo các thuộc tính HTML để giúp chương trình Javascript ngắn gọn hơn.

Cùng chuyên mục:

Functional Programming là gì? Tại sao và khi nào bạn nên sử dụng trong JavaScript

Functional Programming là gì? Tại sao và khi nào bạn nên sử dụng trong JavaScript

Những tính năng mới trong ES6+ trong JavaScript

Những tính năng mới trong ES6+ trong JavaScript

4 cách tránh memory leaks trong JavaScript

4 cách tránh memory leaks trong JavaScript

Capturing và bubbling Event trong Javascript

Capturing và bubbling Event trong Javascript

Phân biệt prototype và __proto__ trong JavaScript

Phân biệt prototype và __proto__ trong JavaScript

Cách hoạt động của Event Loop trong JavaScript

Cách hoạt động của Event Loop trong JavaScript

Phương thức bind(), call(), và apply() trong JavaScript

Phương thức bind(), call(), và apply() trong JavaScript

Cách khắc phục lỗi

Cách khắc phục lỗi "hoisting" trong JavaScript

Sử dụng Promise.all và Promise.race để quản lý các Promise trong JavaScript

Sử dụng Promise.all và Promise.race để quản lý các Promise trong JavaScript

Xử lý bất đồng bộ bằng vòng lặp for-await trong JavaScript

Xử lý bất đồng bộ bằng vòng lặp for-await trong JavaScript

Sự khác biệt giữa Promise, Callback và Async/Await trong JavaScript

Sự khác biệt giữa Promise, Callback và Async/Await trong JavaScript

Cách sử dụng Async functions trong JavaScript

Cách sử dụng Async functions trong JavaScript

Hàm String isspace() trong Python

Hàm String isspace() trong Python

Cách tạo số ngẫu nhiên trong Javascript

Cách tạo số ngẫu nhiên trong Javascript

Hướng dẫn cách tạo một số ngẫu nhiên ...

Cách gộp hai object javascript lại với nhau

Cách gộp hai object javascript lại với nhau

Cách lấy chiều dài của object trong Javascript

Cách lấy chiều dài của object trong Javascript

Hướng dẫn giải phương trình bậc 1 bằng Javascript

Hướng dẫn giải phương trình bậc 1 bằng Javascript

Cách dùng nextSibling trong javascript

Cách dùng nextSibling trong javascript

Cách dùng insertAdjacentHTML trong javascript

Cách dùng insertAdjacentHTML trong javascript

Cách dùng innerHTML trong Javascript

Cách dùng innerHTML trong Javascript

Top