1

I am using materialize modal which has 3 input fields. I have kept modal dismissible true so that modal can be closed by clicking outside. When modal is closed by clicking on the close button then I am calling a function to clear the input fields however I am unable to do so when modal is closed by clicking outside.

I have already tried using modal close callback option.

<div id="resetpassword" class="modal modal-fixed-footer modal-index" ng-controller="ChangePassword">
     <form>
     <div class="modal-header">
          <span>Change Password</span>
          <a class="btn-flat modal-action modal-close">
          <i class="material-icons" ng-click="reset()">clear</i></a>
      </div>
      <div class="modal-content">
           <div class="row">
                <div class="col s8 offset-s2">
                     <div class="col s12">
                          <div class="input-field col s12 clear">
                               <input name="old_password" ng-model="passForm.current_password" id="old_password" type="password">
                                <label class="left-align" for="old_password">Current Password</label>
                          </div>
                          <div class="input-field col s12 clear">
                                <input name="new_password1" ng-model="passForm.password1" id="new_password" type="password">
                                <label class="left-align" for="new_password">New Password</label>
                          </div>
                          <div class="input-field col s12 clear">
                                 <input name="new_password2" ng-model="passForm.password2" id="cnf_new_password" type="password">
                                 <label class="left-align" for="cnf_new_password">Confirm New Password</label>
                          </div>
                       </div>
                  </div>
             </div>
        </div>
        <div class="modal-footer">
             <button class="btn" type="submit" ng-click="requestChangePassword()">Change Password</button>
        </div>
        </form>
 </div>

 <script type="text/javascript">
      $(document).ready(function() {
           $('.modal').modal({complete: function(modal, trigger) {
                reset();
           }});
       });
  </script>

Controller

$scope.reset = function() {
      $scope.passForm.current_password = null;
      $scope.passForm.password1 = null;
      $scope.passForm.password2 = null;
}

The above code gives error as reset() is not defined.

Umang
  • 212
  • 5
  • 18

1 Answers1

4

When a modal is closed you can trigger a function, see http://materializecss.com/modals.html#options

For version 1.0.0

$("#id-of-your-modal").onCloseEnd({
    reset();
}

For version 0.100.2 (from http://archives.materializecss.com/0.100.2/modals.html)

$("#id-of-your-modal").modal({
    complete: function(){
        reset();
    }
});
nitnjain
  • 511
  • 3
  • 8