Phần tử có cả thuộc tính và thuộc tính có tên checked
. Thuộc tính xác định trạng thái hiện tại.
Thuộc tính là một chuỗi và thuộc tính là một boolean. Khi phần tử được tạo từ mã HTML, thuộc tính được đặt từ đánh dấu và thuộc tính được đặt tùy thuộc vào giá trị của thuộc tính.
Nếu không có giá trị cho các thuộc tính trong đánh dấu, các thuộc tính trở nên null
, nhưng bất động sản luôn luôn là một trong hai true
hoặc false
, vì vậy nó trở thành false
.
Khi bạn thiết lập thuộc tính, bạn nên sử dụng một giá trị boolean:
document.getElementById('myRadio').checked = true;
Nếu bạn đặt thuộc tính, bạn sử dụng một chuỗi:
document.getElementById('myRadio').setAttribute('checked', 'checked');
Lưu ý rằng thiết lập các thuộc tính cũng thay đổi thuộc tính, nhưng thiết lập thuộc tính không thay đổi thuộc tính.
Cũng lưu ý rằng bất kỳ giá trị nào bạn đặt thuộc tính, thuộc tính sẽ trở thành true
. Ngay cả khi bạn sử dụng một chuỗi rỗng hoặc null
, việc đặt thuộc tính có nghĩa là nó được chọn. Sử dụng removeAttribute
để bỏ chọn phần tử bằng thuộc tính:
document.getElementById('myRadio').removeAttribute('checked');
No. Trong HTML 4 và trước đó * đã * yêu cầu giá trị… đó là tên không bắt buộc. nghĩa là 'checked =" checked "' là phiên bản đầy đủ, nhưng bạn có thể để 'checked =" 'và' "' tắt và chỉ để lại giá trị đằng sau. (SGML có thể nhận được * lạ *!) – Quentin
Điều đó nói rằng, câu hỏi đặt ra là hỏi về thuộc tính DOM, không phải là các quy tắc HTML. – Quentin
@Quentin - Đủ công bằng, mặc dù đó gần như là một cuộc tranh luận về ngữ nghĩa. – Oded