programing

jQuery Uniform 체크박스가 켜지지 않음(오프)

css3 2023. 3. 16. 21:42

jQuery Uniform 체크박스가 켜지지 않음(오프)

jQuery Uniform을 사용하여 입력/선택 etsc 스타일을 만들고 있습니다.그러나 확인란이 작동을 중지했습니다.네.appendingAjax 콜로부터 송신된 데이터.로딩이 되면$.uniform.update("input:checkbox")새로운 html을 갱신합니다.입력 확인(취소)을 시도할 때 한 번만 작동합니다.다시 확인해도 변경되지 않습니다.

Uniform Javascript를 변경하여 모든 액션을 수행하려고 했습니다. click,focus,bluretc)는 아래.live기능. (즉, .live("click",이렇게 하면 모든 기능이 정지됩니다.

업데이트:

Uniform JS를 모두 읽고 문제를 발견했습니다.

if(!$(elem).attr("checked")){
    //box was just unchecked, uncheck span
    spanTag.removeClass(options.checkedClass);
}else{
    //box was just checked, check span.
    spanTag.addClass(options.checkedClass);
}

.attr("checked")구문에 실패합니다.항상 거짓으로 돌아온다구요, 왜요?몰라.이것뿐만 아니라 원본은 업데이트되지 않습니다.input제거하다checkedAtribute 또는 Atribute를 설정합니다.checked기여하다.

공식 웹사이트를 검색해보니 확인란 입력이 업데이트되지 않습니다.그래서 저만 그런 게 아니라

체크박스가 켜져 있는지 여부를 확인하는 다양한 방법을 검색했지만 다음 방법이 실패합니다.

if ($(elem).attr("checked")) // The original.
if ($(elem).attr("checked") == true)
if ($(elem).is(":checked"))
if ($(elem).checked)
// and:
var check = $(elem).match(/checked=/);
if (check == null)

조언해 주셔서 감사합니다~ : 3

심플한 솔루션

그 이유는 폼의 값을 동적으로 변경해야 하는 경우 균일한 요소에 대한 수정 사항을 업데이트해야 하기 때문입니다.

$('#checkbox').prop('checked',true);
$.uniform.update();

편집

를 갱신하는 경우#checkbox한정:

$('#checkbox').prop('checked',true);
$.uniform.update('#checkbox');

다음 작업을 수행합니다.

$('#checkbox').prop('checked',true).uniform('refresh');

좀 늦은 감이 있지만 누군가에게 도움이 되길 바랍니다.미리 체크된 체크박스를 찾기 위해 유니폼 코드에 몇 줄을 추가해야 했습니다.이 코드는 262행부터 시작됩니다.Uniform 버전 1.7.5를 사용하고 있습니다.'존에 의해 추가된' 노트 사이의 행은 내가 추가한 것입니다.

        "click.uniform touchend.uniform": function(){
      if(!$(elem).attr("checked")){
        //box was just unchecked, uncheck span
        spanTag.removeClass(options.checkedClass);
      // Added by John to look for checkboxes with the attr "checked" that have been click to uncheck
      }else if(!$(elem).is(':checked')){
        spanTag.removeClass(options.checkedClass);
      // end addition by john
      }else{
        //box was just checked, check span.
        spanTag.addClass(options.checkedClass);
      }
    },

오랜 시간이 흘렀지만 같은 문제가 있었지만 간단한 해결책으로 해결했습니다.

유니폼이 a를 추가하고 있습니다.span체크박스를 켜서 클래스를 부여합니다.checked체크되어 있는지 아닌지는 몰라도 페이지 로드 시에만 표시됩니다.페이지가 이미 로드되어 있을 때 체크박스를 켜거나 끄면 체크박스는 꺼지지만span업데이트되지 않은 것으로 표시됩니다.수동으로 해야 합니다.

$('#myDiv input[type=checkbox]').attr('checked',true);
$('#myDiv input[type=checkbox]').parent().addClass('checked');

또는

$('#myDiv input[type=checkbox]').attr('checked',false);
$('#myDiv input[type=checkbox]').parent().removeClass('checked');

가장 깨끗한 솔루션은 아니지만 모든 브라우저에서 정상적으로 작동합니다.

jQuery 1.6.4의 의미는 다음과 같습니다.attr()juquery.jquery.jquaces.succes.succes.succes.succes.succes.succes.succes.succes attr()가 NOWnow, NOW, WAS가 아닌 로드되었을 WAS 합니다.은 ''이 .prop() 「」, 「」라고 하는 합니다.attr()그랬었지.

하려면 , 각 에서 발생하는 를 합니다.attr("checked")prop("checked") 「」, 「」를 attr("disabled")로로 합니다.prop("disabled").

그러면 프로젝트가 수정될 거예요.효과가 있었어요;-)

또, https://github.com/pixelmatrix/uniform/pull/167, 를 참조해 주세요.이것에 의해, 하위 호환성이 향상해, 문제의 대처가 시도됩니다.

Jquery의 최신 버전은 :체크된 값을 평가하기 위해 다른 방법을 사용하고 있다고 생각합니다.약간 오래된 버전(이상적이지는 않지만)을 사용하면 이 문제를 해결할 수 있습니다.그것은 조금 전의 일이지만, Pixel Matrix는 아직 Uniform을 업데이트하지 않은 것 같습니다.

이런 걸 쓰면 안 돼요?

$("#checkbox").attr("checked", "true");

체크박스를 켜고

$("#checkbox").removeAttr("checked");

선택 해제하시겠습니까?

는 변경할 필요가 ..attr()로로 합니다..prop():

    "click.uniform touchend.uniform": function(){
        if(!$(elem).attr('checked')){
            //box was just unchecked, uncheck span
            spanTag.removeClass(options.checkedClass);

            //Added by PingOn
            $(elem).removeAttr('checked');
            //end addition by PingOn

            // Added by John
        }else if(!$(elem).is(':checked')){
            spanTag.removeClass(options.checkedClass);
            // end addition by john

            //Added by PingOn
            $(elem).removeAttr('checked');
            //end addition by PingOn
        }else{
            //box was just checked, check span.
            spanTag.addClass(options.checkedClass);

            //Added by PingOn
            $(elem).attr('checked','true');
            //end addition by PingOn
      }

언급URL : https://stackoverflow.com/questions/6637723/jquery-uniform-checkbox-does-not-uncheck