2012-06-23 4 views
1

사용자가 직접 액세스하지 못하도록하려는 체크 박스가 있습니다. 나는 그들에게 몇 가지 용어를 받아 들여야한다. 이렇게하기 위해 나는 그들이 상자를 체크하지 않고이 미니 팝업을 열어 상자에있는 조건을 포함하는 비활성화 된 체크 박스를 클릭하여 독자가 그들을 읽고 받아 들일 수있게하고 싶다. 수락하면 팝업이 닫히고 확인란이 선택됩니다. 내가 가진 문제는 비활성화 된 체크 박스의 onclick 함수를 실행하는 것이 불가능하다는 것입니다.실행 기능 onclick 사용 안함 체크 박스

+0

당신은 jQuery를은 ('체크 박스 : 장애인') $처럼 .something 시도 할 수 있습니다. (} {() 함수)을 클릭합니다; – vijay

+0

나는 그것을 시도하고 그 작동하지 않습니다, 감사합니다! – Osman

+0

[가능한 비활성화 된 확인란을 클릭하면 어떻게 기능을 실행할 수 있습니까?] (http://stackoverflow.com/questions/6781467/how-can-i-execute-a-function-when-a-disabled- checkbox-is-clicked) – McGarnagle

답변

3

비활성화 된 요소에 대한 클릭 처리는 실제로 까다 롭습니다 ...하지만 어쨌든 바람직한 사용자 경험이라고 생각하지 않습니다. 체크 박스가 비활성화 된 경우 일부 사용자는이를 확인하고이를 클릭하기를 싫어합니다. 대신 preventDefault을 사용하여 클릭 이벤트를 가로 채고 자신의 용도로 사용하는 것이 좋습니다.

<input type='checkbox' id="cb" name="cb" /> 

$(document).ready(function() { 
    $("#cb").click(function(e) { 
     // cancel click event so that checkbox remains unchecked 
     e.preventDefault(); 

     // display popup here, then manually check the checkbox if needed 
    } 
}); 
+0

이것에 대해 생각해 보았습니다. 감사의 말을 전합니다. 사용자 억제에 대한 의견에이 약관은 양식을 보내는 데 필요하므로 수락 조건을 클릭하지 않고 보내면 양식을 제출하라는 메시지가 나타납니다. – Osman

+0

나는 또한 이것을 시도했다. 그것은 작동하지 않는다. – vijay

+0

@vjshah 나는 당신이 무엇을 의미하는지 모르겠다 ... 나는 그것을 프로토 타입으로 만들었다. 그리고 그것은 당신이 기대할 수있는대로 나를 위해 일한다 ... 다른 곳의 해결책이있다. 그러나 원한다면 나는 위에 링크 된 스레드를 보아라. . – McGarnagle

0

비활성화 된 확인란은 클릭 이벤트를 제대로 처리하지 못하고 "사용 중지됨"으로 표시됩니다.

, 당신이 시도 할 수 : 팝업이 표시되는 경우

  • 저장하는 확인란에 (예를 들어, 데이터 팝업 = "0") 속성을 추가
  • 체크 박스에 onclick 이벤트를 처리 팝업이 표시되면 (data-popup = "1")
  • 팝업이 표시되지 않으면 (data-popup = "1") 단순히 true를 반환하고 팝업이 표시되지 않으면 behavior, set data-popup = "1"및 이용 약관 팝업을 표시하십시오.

또 다른 개선점은 팝업 디자인에 따라 해당 팝업에 새로운 체크 박스를 추가하는 것일 수 있으며 사용자가 이용 약관을 읽으면 팝업에서 직접 이용 약관에 동의 할 수 있습니다. 그렇게하면 팝업 상자의 체크 상자에서 click 이벤트를 처리하고 페이지의 확인란을 자동으로 선택해야합니다.

0

@dbaseman

여기 내 코드입니다. 보세요. 여기에 div에 대한 경고가 표시되지만 확인란에는 표시되지 않습니다.

<html> 
<head> 
<script type="text/javascript" src="jQuery.js"></script> 
<script type="text/javascript"> 
$(document).ready(function(){ 
$("#checkbox, #hello").click(function(){ 

     alert("hello"); 
    }); 
}); 
</script> 
</head> 

<body> 
<div id="checkbox"> 
    <p> hello</p> 
<input type="checkbox" id="hello" disabled="disabled" /> 
</div> 
</body> 
</html> 
+0

당신은 defult 액션을 잡아서'$ ("checkbox, #hello")를 시도해 보지 못하게 할 필요가 있습니다. (function (e) { e.preventDefault(); 알림 ("hello"); });'@dbaseman이 말한대로 – Osman

+0

예. 알겠습니다. 감사합니다. – vijay

1
$('#chk').click(function() { 
      if (confirm('Accept')) { 
       $(this).attr('checked', 'checked'); 
      } 
      else { 
       $(this).attr('checked', false); } 
     });