Chỉnh sửa : Ai đó đã làm rõ rằng bạn đang tìm kiếm các thuộc tính "hợp lệ" "không hợp lệ" cho DOM.
Tôi sẽ thêm các thuộc tính vào mỗi thẻ bằng cách sử dụng dom_object.setAttribute("isvalid", "true")
. Bạn cũng có thể có một chức năng xác thực trung tâm cập nhật các thuộc tính này mỗi lần (và sử dụng dom_object.getAttribute("isvalid")
mỗi lần).
Bạn có thể chạy chức năng này mỗi khi một phần tử mất tiêu điểm hoặc bất cứ khi nào bạn muốn.
Không hẳn là thanh lịch, nhưng tiếc là bây giờ không có hỗ trợ "giả" với javascript và HTML5.
Nếu tôi hiểu câu hỏi của bạn, bạn có thể xác thực bằng Javascript. Tuy nhiên, hãy lưu ý rằng rất dễ dàng để phá vỡ xác thực phía máy khách, đặc biệt là xác thực javascript . Bạn không bao giờ nên tin tưởng vào dữ liệu máy khách và luôn kiểm tra phía máy chủ.
Ví dụ: tôi có thể dễ dàng tìm thấy các ID phần tử bằng cách kiểm tra mã nguồn, sau đó thực hiện document.getElementById('some_id').setAttribute('max', new_number)
để thay đổi giá trị tối đa (đây là một trong những mục nhập từ liên kết của bạn).
Có nhiều cách khác nhau để làm điều đó, vì vậy tôi sẽ cố gắng cung cấp cho bạn thành ngữ chung.
Bạn có thể lấy giá trị bằng cách thực hiện document.getElementById('form_element_id').value
(đảm bảo rằng bạn cung cấp biểu mẫu a name
được gửi đến máy chủ và biểu mẫu id
được sử dụng bởi javascript). Đối với textareas, bạn có thể sử dụng .innerHTML
.
Sau đó, bạn có giá trị trong một biến, có nhiều cách khác nhau để kiểm tra nó.
Ví dụ, bạn có thể làm if (parseInt(my_value) < 0) //error
. Bạn cũng có thể sử dụng biểu thức chính quy, tôi sẽ không giải thích tất cả nhưng bạn có thể bắt đầu tại đây http://www.w3schools.com/jsref/jsref_obj_regexp.asp . Tôi biết w3schools không phải là nguồn tốt nhất nhưng tôi thấy nó là một nơi bắt đầu ổn.
Bây giờ đến phần xác thực: hãy thêm onsubmit="return validateForm()
vào thẻ biểu mẫu của bạn nơi validateForm () là hàm thực hiện tất cả việc kiểm tra. Và hàm chỉ trả về true
nếu hợp lệ và false
ngược lại. Điều này sẽ ghi đè chức năng xác thực mặc định (theo mặc định không làm gì cả).
Vì vậy, trong ví dụ trên, //error
sẽ được thay thế bằng return false
. Bạn cũng có thể làm những việc khác; chẳng hạn như cảnh báo lỗi sau đó trả về false. Bạn cũng có thể sử dụng javascript để đánh dấu các trường không hợp lệ (không chắc đây có phải là ý của bạn hay không khi " đánh dấu trường nhập là không hợp lệ / hợp lệ từ javascript ")
Tất nhiên, nếu bạn không muốn kiểm tra tất cả các trường, bạn chỉ phải trả về true nếu các trường nhất định vượt qua. Một lần nữa, bạn không nên dựa vào điều này, nhưng nếu bạn chỉ muốn ngăn cản những người bình thường thì đó là một giải pháp dễ dàng.