2014-05-25 5 views
0

JQuery에서 확인란을 사용할 때 문제가 있습니다. 사용자가 draft_checkbox 만 체크하면 버튼을 보여주고 싶습니다. 사용해보기 초안 체크 박스를 클릭하십시오. 하지만, 초안 체크 박스에서만 표시하거나 숨길 수 있습니다. 다른 확인란을 클릭해도 계속 표시됩니다. 난 그냥 사용자가 초안 확인란을 선택하면 버튼을 표시하고 싶습니다. 사용자가 둘 다 확인하면 숨기고 싶습니다. 여기JQuery에서 특정 확인란의 버튼을 표시하거나 숨기는 방법?

내 스크립트, 여기

<script type="text/javascript"> 
     $(document).ready(function() {     
      $('#draft').click(function() { 
       if($("#draft").is(':checked')){ 
        $('#btnApprovepo').css('visibility','visible');      
       }else{ 
        $('#btnApprovepo').css('visibility','hidden');            
       } 
      }); 
     }); 
</script> 

<div id="status_div"> 
    <input type="checkbox" class="po_status" name="status" id="draft" value="d" checked="checked"/> Draft<br /> 
    <input type="checkbox" class="po_status" name="status" id="pending" value="n" /> Pending <br /> 
    <input type="checkbox" class="po_status" name="status" id="submit" value="s" /> Submitted <br /> 
    <input type="checkbox" class="po_status" name="status" id="pAck" value="c" /> Partial Ack <br /> 
    <input type="checkbox" class="po_status" name="status" id="ack" value="a" /> Acknowledged <br /> 
    <input type="checkbox" class="po_status" name="status" id="partial" value="p" /> Partial Delivered <br /> 
    <input type="checkbox" class="po_status" name="status" id="delivered" value="e" /> Delivered <br /> 
    <input type="checkbox" class="po_status" name="status" id="void" value="v" /> Void <br /> 
    <input type="checkbox" class="po_status" name="status" id="reject" value="r" /> Reject <br /> 
</div> 

내 버튼,

<input type='button' value='Button' name='Button' id='btnApprovepo' /> 
+1

매우 신뢰할 수있는 소스가 없습니다 , [** here **] (http://www.w3schools.com/jquery/jquery_hide_show.asp) 그들은 그것을 올바르게 얻었다. JQuery의'hide()'와'show()'메소드를 사용할 수있다. –

+0

http://jsfiddle.net/7Het8/ –

+1

K-THIHA 사용자는 확인란 옆에있는 텍스트를 클릭 할 수 있기를 기대합니다. 라벨과 텍스트를 묶음으로써 쉽게 수정할 수 있습니다 : 거부' – Popnoodles

답변

2

바이올린 :

http://jsfiddle.net/XqXL9/2/

$('.po_status').click(function() { 
    if($(".po_status:checked").length === 1 && $("#draft").is(":checked") == true){ 
     $('#btnApprovepo').show(); 
    } else { 
     $('#btnApprovepo').hide(); 
    } 
}); 

몇 가지 모범 pratices : 정확한 비교를 위해

  1. 사용 트리플 ===.
  2. 은 일치하는 태그 대신 클래스를 사용합니다.
  3. 가시성으로 보이지 않게되지만 공간을 차지합니다. Is that what you need?. 이 한 줄의 코드
+0

둘 다 맞습니다. 나는 이유를 알지 못한다. –

1

을이보십시오, 여기에

내가 알것 해달라고 jsfiddle http://jsfiddle.net/iamrmin/zCkKc/

$(document).ready(function() {     
    $('#status_div input[type=checkbox]').click(function() { 
     if($("#status_div :checked").length == 1 && $("#draft").is(":checked") == true) 
      $('#btnApprovepo').show(); 
     else 
      $('#btnApprovepo').hide() 
    }); 
}); 

입니다 w visibility css를 사용한 이유는 무엇입니까? 요구 사항 일 수 있습니다. 가시성을 전환하려면 .show().hide()을 사용하는 것이 좋습니다.

+0

수 있습니다. 당신의 대답을 완성하기 위해 일하는 바이올린을 추가하십시오. –

+0

@susheel 코드가 jsfiddle와 함께 업데이트되었습니다. –

+1

나는 downvote하지 않았지만 if/else의 형식을 변경했습니다. 선호하는 사람, 특히 도움이 필요할 때 누군가의 서식을 변경해서는 안됩니다. – Popnoodles

0

난 당신이 이런 식으로 할 수 있다고 생각이 경우에도 중괄호 사이

  • 묶으 코드는 ... 여기 은 W3 스쿨 비록 FIDDLE

    <script type="text/javascript"> 
        $(document).ready(function(){ 
         $("#draft").click(function(){ 
          if($(this).is(':checked')){ 
           $('#btnApprovepo').css("visibility","visible"); 
          } 
          else 
          { 
           $('#btnApprovepo').css("visibility","hidden"); 
          } 
         }); 
        }); 
    </script> 
    
  • +0

    헤이 작동하지 않습니다. jsfiddle로 우리에게 보여주세요. –

    +0

    스택 오버플로에 오신 것을 환영합니다. 답변을 게시하기 전에 답변이 제대로 작동하는지 확인해야합니다.답변을 가진 질문은 도움을 줄 수있는 SO 사용자가 건너 뛸 수 있습니다. 작동하지 않는 답을 게시하면 유용한 조언과 작업 코드를 박탈 당할 수 있습니다. – Popnoodles

    관련 문제