简体   繁体   English

单击输入并从Bootstrap模式窗口点击提交按钮提交表单数据

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

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. 我没有关闭按钮,我已禁用窗口关闭按下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. 在键入密码或单击提交按钮后按Enter键,同一页面重新加载并且ajax脚本不会运行。 Could someone tell me if my script is clashing with the default settings of my modal window? 有人能告诉我我的脚本是否与模态窗口的默认设置发生冲突吗?

Listen to form submit event - it gets triggered by both enter and click events. 收听表单submit事件 - 它由enter和click事件触发。

Markup 标记

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

JS JS

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

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

  //do stuff with your form here
  ...

});
  1. Change type="submit" from your login button to type="button". 从登录按钮更改type =“submit”到type =“button”。

EDIT: 2. Try removing data-keyboard="false". 编辑:2。尝试删除data-keyboard =“false”。

I have done that where the submit form would open in modal dialog box and, after that, submit the whole entry in the fields. 我已经完成了提交表单将在模式对话框中打开的位置,之后,在字段中提交整个条目。 If you click on submit button, entry would done on the database and instantly the page is redirected to same page with new data. 如果单击“提交”按钮,将在数据库上完成输入,并立即将页面重定向到包含新数据的同一页面。 There is no need to refresh to see the recent entered data. 无需刷新即可查看最近输入的数据。 Hope this helps. 希望这可以帮助。

<button class="btn btn-primary btn-lg" data-toggle="modal" data-target="#myModal">ADD CONTENT</button>
<!-- Modal -->
  <div class="modal fade" id="myModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
    <div class="modal-dialog">
      <div class="modal-content">
        <div class="modal-header">
          <button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button>
          <h4 class="modal-title" id="myModalLabel">Please Add Content</h4>
        </div>
      <div class="modal-body">
        <form role="form" action="" method="POST">
          <!-- YOUR HTML FORM GOES HERE--->
        <button type="submit" name="submit" class="btn btn-primary btn-lg"id="sub" onclick="SUBMISSION()" >Submit </button>
        </fieldset>
        </form>
<?php
  if(isset($_POST['submit']))
  {
    SUBMISSION();
  }
  function SUBMISSION()
  {
    // UR CONNECTION ESTABLISHMENT CODE GOES HERE
    // SQL QUERY FOR INSERTION IN FIELDS

    echo"<script type=\"text/javascript\">
      document.location.href='http://localhost/dict/pages/YOURPAGE.php';
    </script>";

    $conn->CLOSE();
  }
?>

        </div>                      
       </div>
     <!-- /.modal-content -->
     </div>
   <!-- /.modal-dialog -->
   <!-- /.panel-body -->
   </div>
   <!-- /.panel -->
 </div>
 <!-- /.col-lg-12 -->

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM