Cập nhật: Chỉ xem nhận xét của bạn dưới câu trả lời của Pavan về việc muốn sử dụng các phần tử không phải nhãn như nhãn, ví dụ: các phần tử nhịp. Câu trả lời đầu tiên của tôi là lý do tại sao? Nhưng nếu bạn thực sự muốn bạn có thể làm điều này một cách dễ dàng mà không cần phải viết nhiều mã và mã hóa nhiều id phần tử trong JavaScript của bạn (mà dường như là đường dẫn bạn hiện đang sử dụng với mã hiện tại của bạn).
Sử dụng một thuộc tính data
trong các yếu tố mà bạn muốn sử dụng như là giả nhãn, như sau:
<span data-labelfor="name">Name</span>
<input type="checkbox" id="name">
Và sau đó bạn có thể thiết lập các handler nhấp chuột với một số generic jQuery để chọn tất cả các yếu tố với thuộc tính :
$(document).ready(function() {
$("[data-labelfor]").click(function() {
$('#' + $(this).attr("data-labelfor")).prop('checked',
function(i, oldVal) { return !oldVal; });
});
});
bản demo Làm việc cho thấy rằng một chức năng ngắn áp dụng hành vi để một khoảng một nhãn và một div: http://jsfiddle.net/TFD72/
Original câu trả lời:
Như Pavan đã giải thích, bạn có thể làm điều này tự động bằng cách sử dụng thuộc tính for
trong nhãn của bạn, nhưng như xa như tại sao mã của bạn không làm việc:
Cuộc gọi của bạn đến CheckCheckBox()
chức năng là đi qua hai đối tượng jQuery như các tham số như sau:
CheckCheckBox($('lblAssociateWithCheckBox'), $('Checkbox1'));
Nhưng chức năng đang xử lý các tham số như thể chúng là các chuỗi chứa id của các phần tử bạn muốn xử lý.Vì vậy, nếu bạn muốn giữ chức năng của bạn như là chỉ thay đổi cách bạn gọi nó là vượt qua đúng loại tham số:
CheckCheckBox('lblAssociateWithCheckBox', 'Checkbox1');
Điều đó sẽ khắc phục lỗi bạn báo giá.
Tuy nhiên, chức năng của bạn là sẽ đặt hộp kiểm để "kiểm tra" trên mỗi nhấp chuột của nhãn, ngay cả khi nó đã được chọn. Nếu bạn muốn nó để chuyển đổi giữa (tức là hành vi bình thường) kiểm tra và kiểm soát bạn có thể làm một cái gì đó như thế này:
$('#' + Checkbox1).prop('checked', function(i, oldVal) { return !oldVal; });
(. Nhưng một lần nữa, chỉ làm điều đó trong đánh dấu html sử dụng thuộc tính for
)
Giống như Pavan đã nói, bạn không cần JS cho điều này, nó là một phương pháp HTML gốc. Thuộc tính 'for' của nhãn tương ứng với 'id' của hộp kiểm. –
@Pavan Label không phải lúc nào cũng là 'nhãn'. Có thể là' span'.I kiểm tra 'span' không lấy' cho thuộc tính'. Tôi thực hiện tác vụ này liên tục vì vậy tôi muốn một hàm gọi bất kỳ vị trí nào. –