How to close Materialize modal only when user clicks on close btn?

$(document).ready(function(){ $('#modal1').openModal({ dismissible:false }); });

Try This It worked for me


You can customize the behavior of Materialize modal using Options which can be found Here at the bottom of the page

change option dismissible to false (which by default in modal plugin is true) so modal only get closed when click on close button.

$('.modalselector').leanModal({
      dismissible: false
);

Example Modal

$(document).ready(function(){
	$('.modal-trigger').leanModal({
		dismissible: false
	});
});
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/materialize/0.97.1/css/materialize.min.css" />
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/materialize/0.97.1/js/materialize.min.js"></script>
<!-- Modal Trigger -->
<a class="waves-effect waves-light btn modal-trigger" href="#modal1">Modal</a>

<!-- Modal Structure -->
<div id="modal1" class="modal">
  <div class="modal-content">
    <h4>Modal Header</h4>
    <p>A bunch of text</p>
  </div>
  <div class="modal-footer">
    <a href="#!" class=" modal-action modal-close waves-effect waves-green btn-flat">Close</a>
  </div>
</div>

Below code worked for me with materialize.css 1.0.0

    $(document).ready(function(){

			var elems = document.querySelectorAll('.modal');
			var instances = M.Modal.init(elems,{
				dismissible:false
			});
	  
			var singleModalElem = document.querySelector('#login-page');
			var instance = M.Modal.getInstance(singleModalElem);
			instance.open();
		
	  })
<link href="https://cdnjs.cloudflare.com/ajax/libs/materialize/1.0.0/css/materialize.min.css" rel="stylesheet"/>
<link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet">
<script src="https://cdnjs.cloudflare.com/ajax/libs/materialize/1.0.0/js/materialize.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.2.1/jquery.min.js"></script>
<div id="login-page" class="modal">
	<form class="login-form">
		<div class="row">
		</div>
		<div class="row">
			<div class="input-field col s12">
				<i class="material-icons prefix">account_circle</i>
				<input class="validate" id="nick_name" type="text">
				<label for="nick_name" data-error="wrong" data-success="right">Nick Name</label>
			</div>
		</div>
		<div class="row">
			<div class="input-field col s12">
				<a href="#" class="btn waves-effect waves-light col s12">Entra</a>
			</div>
		</div>
	</form>
  </div>

You can close the modal with the following code:

$('#modalname').closeModal(); or  $('#modalname').modal('close');