Submit form data both on clicking enter and hitting the submit button from a Bootstrap modal window

71,421

Listen to form submit event - it gets triggered by both enter and click events.

Markup

<form id="yourForm">
  <input type="text" name="username">
  <input type="password" name="password">
  <input type="submit" value="Submit">
</form>

JS

$('#yourForm').submit(function(event){

  // prevent default browser behaviour
  event.preventDefault();

  //do stuff with your form here
  ...

});
Share:
71,421
Anon
Author by

Anon

Updated on July 18, 2022

Comments

  • Anon
    Anon almost 2 years

    Here's my form that's in my modal window:

    I have no close button and I have disabled the window from closing on pressing esc. I want to be able to submit the form data on pressing submit or on pressing the enter key.

    <div class="modal hide fade" id="myModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true" data-backdrop="static" data-keyboard="false">
        <div class="modal-header">
            <h3 id="myModalLabel">Enter your Credentials</h3>
        </div>
        <div class="modal-body">
            <form id="login-form" class="form-horizontal" accept-charset="UTF-8"  data-remote="true"">
                <div class="control-group">
                    <label class="control-label" for="inputEmail">Email</label>
                    <div class="controls">
                        <input type="email" id="email" name="email" value=""  placeholder="Email">
                    </div>
                </div>
                <div class="control-group">
                    <label class="control-label" for="inputPassword">Password</label>
                    <div class="controls">
                        <input type="password" id="passwd" name="passwd" value="" placeholder="Password">
                    </div>
                </div>
                <div class="control-group">
                    <div class="controls">
                        <label class="checkbox">
                            <input type="checkbox"> Remember me
                        </label>
                        <input type="submit"  id="login" value="Login"class="btn btn-primary" />
    
                    </div>
                </div>
            </form>          
        </div>
    </div>
    

    Here's the script I'm using:

    $(document).ready(function(){
        $('#myModal').modal('show');
    });
    
    function submitLogin() {
        $.ajax({
            url:"login_mysql.php",
            type:'POST',
            dataType:"json",
            data: $("#login-form").serialize()
        }).done(function(data){
            //do something
        });
    }
    
    $('#passwd').keypress(function(e) {
        if (e.which == '13') {
            submitLogin();
        }
    });
    
    $('#login').click(function(){
        submitLogin();
    });
    

    On pressing enter after keying in my password or clicking on the submit button the same page reloads and the ajax script does not run. Could someone tell me if my script is clashing with the default settings of my modal window?