2014-12-19 2 views
0

부트 스트랩을 사용 중이며 모달 안에 텍스트 필드와 체크 박스가 있습니다. 확인란을 선택하면 자바 스크립트를 사용하여 텍스트 필드를 사용할 수 있지만 모달 내부에서는 작동하지 않는 것 같습니다.체크 박스 Javascript 기능이 부트 스트랩 모달에서 작동하지 않습니다.

모달 :

<div class="modal fade" id="add-modal" tabindex="-1" role="dialog" aria-hidden="true"> 
    <form action="php_add/event.php" method="post"> 
     <div class="modal-body"> 
      <input type="checkbox" id="foodBox" class="flat-red foodBox" /> 
      <input name="food" id="food" disabled> 
     </div> 
    </form> 
</div> 

JS :

$(document).getElementById('foodBox').onchange = function() { 
    document.getElementById('food').disabled = !this.checked; 
    document.getElementById('food').value = ""; 
}; 

하지 않는 이유는 함수 작업 확인란을 모달 안에있을 때?

document.getElementById("foodBox").onchange = function() { 
    var food = document.getElementById('food'); 
    food.disabled = !this.checked; 
    food.value = ""; 
} 

jQuery를 : 당신은 네이티브 JS에 대한 .. jQuery를 네이티브 JS 구문을 혼합하고

+4

'document.getElementById' -하지'$ (문서) – tymeJV

+0

를 .getElementById' Javascript 문제를 해결할 때 브라우저의 콘솔을 항상 확인하십시오. 대부분의 브라우저에서 F12를 눌러 액세스 할 수 있습니다. – Nick

+0

이것이 폐쇄 된 이유가 확실하지 않습니다. 이것은 부트 스트랩의 모달 이벤트에서 이벤트가 전파되는 버그입니다. 모달이 열리기 전에 일어나는 일을 막는 "preventDefault"를 발생시킵니다. 모달을 연 후이 작업을 수행하면 원하는대로 작동하지만 눈에 띄지 않을만큼 빠르다는 것을 알았습니다. – David

답변

2

$("#foodBox").change(function() { 
    $("#food").prop("disabled", !this.checked); 
    $("#food").val(""); 
}); 
+0

나는 첫 번째 대안을 가지고 있었고 지금도 여전히 바뀌 었습니다. 여전히 작동하지 않습니다. – jahed

+0

@jahed - 여기에서 작동합니다 : http://jsfiddle.net/59bLnLtv/ – tymeJV

+0

jquery는 어디에 두어야합니까? head-tag 내부 또는 페이지 스크립트에서? – jahed

관련 문제