I've been fighting against the same problem and thanks to this conversation I found my mistake. While using TwitterBootstrap3, you need the following things:
A button trigger
<a data-toggle="modal"
href="#myModal"
class="btn btn-primary btn-lg"
>Launch demo modal</a>
An a div with this minimun structure:
<div class="modal fade"
id="myModal"
tabindex="-1"
role="dialog"
aria-labelledby="myModalLabel"
aria-hidden="true"
>
<div class="modal-dialog">
<div class="modal-content">
<!-- blah blah content here -->
</div>
</div>
</div>
It is important to know that if you don't place modal-dialog and model-content, the modal window will not be opened properly