[javascript] 자바 스크립트로 부트 스트랩 모달을 숨기는 방법?

나는 여기에있는 게시물, Bootstrap 사이트 및 Googled를 미친 것처럼 읽었지만 쉬운 대답은 확실하지 않습니다 …

다음과 같이 link_to 도우미에서 여는 부트 스트랩 모달이 있습니다.

<%= link_to "New Contact", new_contact_path, {remote: true, 'data-toggle' => 'modal', 'data-target' => "#myModal",  class: "btn btn-primary"} %>

ContactsController.create행동에는 코드를 만들고에 Contact전달합니다 create.js.erb. 에서 create.js.erb오류 처리 코드 (루비와 자바 스크립트의 혼합)가 있습니다. 모든 것이 잘되면 모달을 닫고 싶습니다.

내가 어려움을 겪고있는 곳입니다. 모든 것이 잘되면 모달을 닫을 수 없습니다.

시도했지만 $('#myModal').modal('hide');효과가 없습니다. 나는 또한 $('#myModal').hide();모달이 사라지게하지만 배경을 남기 려고 시도했습니다 .

모달을 닫거나 백그라운드에서 배경을 해제하는 방법에 대한 지침은 create.js.erb무엇입니까?

편집하다

다음은 myModal의 마크 업입니다.

<div class="modal hide" id="myModal" >
  <div class="modal-header">
    <a class="close" data-dismiss="modal">×</a>
    <h3>Add Contact</h3>
    <div id="errors_notification">
    </div>
  </div>
  <div class="modal-body">
    <%= form_for :contact, url: contacts_path, remote: true do |f| %>
      <%= f.text_field :first_name, placeholder: "first name" %>
      <%= f.text_field :last_name, placeholder: "last name" %>
      <br>
      <%= f.submit "Save", name: 'save', class: "btn btn-primary" %>
      <a class="close btn" data-dismiss="modal">Cancel</a>
    <% end %>
  </div>
  <div class="modal-footer">
  </div>
</div>



답변

브라우저 창에서 모달을 연 상태에서 브라우저 콘솔을 사용하여

$('#myModal').modal('hide');

그것이 작동하고 모달이 닫히면 가까운 자바 스크립트가 서버에서 브라우저로 올바르게 전송 되지 않는 것입니다.

작동하지 않으면 클라이언트에 대해 추가로 조사해야합니다. 예를 들어 동일한 ID를 가진 두 개의 요소가 없는지 확인하십시오. 예를 들어 페이지로드 후 처음으로 작동하지만 두 번째로는 작동하지 않습니까?

브라우저 콘솔 : firefox 용 firebug, Chrome 또는 Safari 용 디버깅 콘솔 등


답변

부트 스트랩 모달 을 닫으 려면 다음과 같이 모달 방법에 옵션으로 ‘숨기기’ 를 전달할 수 있습니다

$('#modal').modal('hide');

여기 에서 바이올린 작업을 살펴보십시오.

부트 스트랩은 모달 기능에 연결할 수있는 이벤트를 제공합니다 . 모달이 사용자로부터 숨겨 졌을 때 이벤트를 시작하려는 경우 hidden.bs.modal 이벤트를 사용 하면 모달 메서드 및 이벤트에 대한 자세한 내용을 볼 수 있습니다. 선적 서류 비치

위의 방법으로 작동하지 않으면 닫기 버튼에 ID를 부여하고 닫기 버튼을 클릭하십시오.


답변

부트 스트랩 3.4를 사용합니다.이 기능이 작동하지 않습니다

$('#myModal').modal('hide')

필사적으로 나는 이것을했다 :

$('#myModal').hide();
$('.modal-backdrop').hide();

어쩌면 우아하지는 않지만 작동합니다.


답변

부트 스트랩이있는 모달을 숨기고 표시하는 가장 좋은 양식

// SHOW
$('#ModalForm').modal('show');
// HIDE
$('#ModalForm').modal('hide');


답변

동일한 오류가 발생 했으며이 코드 줄이 실제로 도움이됩니다.

$("[data-dismiss=modal]").trigger({ type: "click" });


답변

$('#modal').modal('hide');
//hide the modal

$('body').removeClass('modal-open');
//modal-open class is added on body so it has to be removed

$('.modal-backdrop').remove();
//need to remove div with modal-backdrop class


답변

이 코드를 사용할 수있는 올바른 해결책을 찾았습니다.

$('.close').click();