Xin lỗi vì đã đến bữa tiệc quá muộn, nhưng tôi thấy có một số điểm cần cải thiện ở đây. Không liên quan đến "vô hiệu hóa hộp văn bản", mà là lựa chọn hộp phóng xạ và đơn giản hóa mã, làm cho nó trở thành bằng chứng trong tương lai, cho các thay đổi sau này.
Trước hết, bạn không nên sử dụng .each () và sử dụng chỉ mục để chỉ ra một nút radio cụ thể. Nếu bạn làm việc với một tập hợp các nút radio động hoặc nếu bạn thêm hoặc xóa một số nút radio sau đó, thì mã của bạn sẽ phản ứng trên nút sai!
Tiếp theo, nhưng đó có lẽ không phải là trường hợp khi OP được tạo, tôi thích sử dụng .on ('click', function () {...}) thay vì nhấp vào ...
http: //api.jquery. com / on /
Nhưng không kém phần quan trọng, mã có thể được thực hiện đơn giản hơn và bằng chứng trong tương lai bằng cách chọn nút radio dựa trên tên của nó (nhưng đã xuất hiện trong một bài đăng).
Vì vậy, tôi đã kết thúc với đoạn mã sau.
HTML (dựa trên mã okw)
<span id="radiobutt">
<input type="radio" name="rad1" value="1" />
<input type="radio" name="rad1" value="2" />
<input type="radio" name="rad1" value="3" />
</span>
<div>
<input type="text" id="textbox1" />
<input type="checkbox" id="checkbox1" />
</div>
Mã JS
$("[name='rad1']").on('click', function() {
var disable = $(this).val() === "2";
$("#textbox1").prop("disabled", disable);
$("#checkbox1").prop("disabled", disable);
});
name
s có thể giống hệt nhau, nhưngid
s phải là duy nhất.