jQuery가있는 체크 박스에 대해 "확인"을 설정합니다


질문

 

jQuery를 사용하여 체크 박스를 선택하는 이렇게하고 싶습니다.

$(".myCheckBox").checked(true);

또는

$(".myCheckBox").selected(true);

그런 일이 존재합니까?


답변

 

현대 jquery.

.prop ()을 사용하십시오.

$('.myCheckbox').prop('checked', true);
$('.myCheckbox').prop('checked', false);

DOM API.

하나의 요소로 작업하는 경우 항상 기본 HTMLInputElement에 액세스하고 .checked 속성을 수정할 수 있습니다.

$('.myCheckbox')[0].checked = true;
$('.myCheckbox')[0].checked = false;

.prop () 및 .attr () 메서드를 사용하는 이점은 모든 일치하는 요소에서 작동한다는 것입니다.

jQuery 1.5.x 및 아래

.prop () 메서드를 사용할 수 없으므로 .attr ()를 사용해야합니다.

$('.myCheckbox').attr('checked', true);
$('.myCheckbox').attr('checked', false);

이것은 jQuery의 단위 테스트가 버전 1.6 이전에 사용한 접근 방식이며 $ ( '. myCheckBox')를 사용하는 것이 바람직합니다. removeAttr ( '확인');후자가 처음 확인 된 경우, 상자가 처음 확인되면 .reset ()에 대한 호출의 동작을 해제하지만 미묘하지만 원하지 않는 동작 변경이 변경됩니다.

더 많은 문맥을 위해 1.5.x에서 1.6에서 1.5.x에서 1.6으로의 전환에서 체크 된 속성 / 속성의 처리 변경에 대한 불완전한 토론은 버전 1.6 릴리스 노트와 .prop ()의 속성 대 속성 섹션에서 찾을 수 있습니다.선적 서류 비치.



답변

사용:

$(".myCheckbox").attr('checked', true); // Deprecated
$(".myCheckbox").prop('checked', true);

확인란이 선택되어 있는지 확인하려면 다음을 수행하십시오.

$('.myCheckbox').is(':checked');


답변

이것은 jQuery와 함께 체크 박스를 검사하고 선택 취소하는 정확한 방법이며 플랫폼 간 표준이므로 양식 재 게시를 허용합니다.

$('.myCheckBox').each(function(){ this.checked = true; });

$('.myCheckBox').each(function(){ this.checked = false; });

이렇게하면 JavaScript 표준을 사용하여 확인란을 선택하고 선택 취소합니다. 따라서 확인란 요소의 "Checked"속성을 제대로 구현하는 브라우저는이 코드를 완벽하게 실행합니다.이것은 모든 주요 브라우저가되어야하지만, Internet Explorer 9로 이전을 테스트 할 수 없습니다.

문제 (jQuery 1.6) :

사용자가 확인란을 클릭하면 해당 확인란이 "확인 된"속성 변경 사항에 응답하지 않습니다.

다음은 누군가가 확인란을 클릭 한 후에 작업을 수행하지 못하는 CheckBox 속성의 예입니다 (이것은 크롬에서 발생합니다).

깡깡이

해결책:

DOM 요소에서 JavaScript의 "Checked"속성을 사용하여 DOM을 조작하려고하는 대신에 문제를 직접 해결할 수 있습니다.

깡깡이

이 플러그인은 jQuery에서 선택한 모든 요소의 검사 된 속성을 변경하고 모든 상황에서 확인란을 성공적으로 확인하고 선택 취소합니다.그래서이 작업이 과도한 솔루션처럼 보일 수 있지만 사이트의 사용자가 더 잘 갖추고 사용자의 좌절을 예방하는 데 도움이됩니다.

(function( $ ) {
    $.fn.checked = function(value) {
        if(value === true || value === false) {
            // Set the value of the checkbox
            $(this).each(function(){ this.checked = value; });
        } 
        else if(value === undefined || value === 'toggle') {
            // Toggle the checkbox
            $(this).each(function(){ this.checked = !this.checked; });
        }

        return this;
    };
})( jQuery );

또는 플러그인을 사용하지 않으려면 다음 코드 스 니펫을 사용할 수 있습니다.

// Check
$(':checkbox').prop('checked', true);

// Un-check
$(':checkbox').prop('checked', false);

// Toggle
$(':checkbox').prop('checked', function (i, value) {
    return !value;
});


답변

넌 할 수있어

$('.myCheckbox').attr('checked',true) //Standards compliant

또는

$("form #mycheckbox").attr('checked', true)

화재시킬 확인란의 OnClick 이벤트에 사용자 지정 코드가있는 경우 다음을 사용하십시오.

$("#mycheckbox").click();

속성을 완전히 제거하여 선택을 취소 할 수 있습니다.

$('.myCheckbox').removeAttr('checked')

다음과 같은 모든 확인란을 선택할 수 있습니다.

$(".myCheckbox").each(function(){
    $("#mycheckbox").click()
});


답변

$ .fn 개체를 새 메소드로 확장 할 수도 있습니다.

(function($)  {
   $.fn.extend({
      check : function()  {
         return this.filter(":radio, :checkbox").attr("checked", true);
      },
      uncheck : function()  {
         return this.filter(":radio, :checkbox").removeAttr("checked");
      }
   });
}(jQuery));

그럼 당신은 할 수 있습니다 :

$(":checkbox").check();
$(":checkbox").uncheck();

아니면 해당 이름을 사용하는 다른 라이브러리를 사용하는 경우를 대비하여 MyCheck () 및 MyUncheck ()과 같은 고유 한 이름을 제공 할 수 있습니다.



답변

$("#mycheckbox")[0].checked = true;
$("#mycheckbox").attr('checked', true);
$("#mycheckbox").click();

마지막 사람은 클릭 이벤트를 실행합니다. 확인란의 경우 다른 사용자는하지 않습니다. 따라서 화재하려는 확인란의 onClick 이벤트에 사용자 지정 코드가있는 경우 마지막 하나를 사용하십시오.

출처:https://stackoverflow.com/questions/426258/setting-checked-for-a-checkbox-with-jquery