Các nút
radio là trường mà khó làm ăn với nhất.
Thử với một form như thế này:
Mã nguồn:[Chọn]
<form name="ff" onclick="alert(document.ff.aaa.value);">
<input type="radio" name="aaa" value="01" checked="checked"
/>
<input type="radio" name="aaa" value="02" />
<input type="radio" name="aaa" value="03" />
<input type="radio" name="aaa" value="04" />
</form>
Sẽ chả có cái gì sảy ra khi ta thay đổi các chọn lựa (sự kiện onclick
đáng lẻ phải kích hoạt một cái gì đó) bởi vì các nút chọn lựa có cùng
tên, khác giá trị, khó lòng mà cho javascript biết bạn muốn nói tới nút
nào trong 4 nút.
Cách gải quyết vấn đề này cũng không quá phức tạp. Bản chất của các
nhóm nút chọn lựa là một mảng, với tên mảng là tên chung của nhóm nút,
nút đầu tiên có vị trí là 0,...
Nếu muốn lấy giá trị của từng nút, ta có thể làm như thế này:
document.<tên form>.<tên nút>[<vị
trí>].value
VD:
document.ff.aa[0].value
Còn nếu muốn xem nút đó có được check chưa, thì ta phải dùng thuộc
tính checkedif(document.<tên form>.<tên
nút>[<vị trí>].checked==true)
Và để xem nhóm nút có được check chưa, tốt nhất là dùng một vòng lặp,
chạy qua cái mảng này, kiểm tra từng cái.
Đây là code function để các bạn dành riêng kiểm tra các nút radio
Mã nguồn:[Chọn]
//Biến check ban đầu mang giá trị no, nếu có 1 phần tử nào của nhóm nút
được chỏn, giá trị sẽ là yes
var check="no"
//Bắt đầu vòng lặp chạy từ đầu tới cuối mảng radio
for(i=0;i<document.ff.aa.length;i++)
{
// Nếu phát hiện một phần tử nào đã được chọn, check sẽ = yes
if(document.ff.aa[i].checked==true)
{
check="yes"
}
}
if(check=="yes")
{
alert("Đã chọn");
return true;
}else{
alert("Chưa chọn");
return false;
}