$('#formId').submit() 不起作用



我正在尝试使用JQuery upload表单,但$('#formId').submit()不起作用。

<!DOCTYPE html>
<html>
    <head>
        <title>Upload Pricing</title>
        <META CHARSET="UTF-8">
        <META lang="en">
        <META http-equiv="X-UA-Compatible" content="IE=edge">
        <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" />
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
        <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css">
        <style>
            .uploadWrapper{
                width: 100%;
                max-width: 400px;
                margin: 30px auto;
            }
        </style>
    </head>
    <body>
        <div class="container-fluid">
            <div class="row">
                <div class="col-lg-12 col-md-12 col-sm-12 col-xs-12">
                    <div class="uploadWrapper">
                        <h3>Upload Document for Pricing</h3>
                        <form id="docForm" method="post" action="<?PHP $_SERVER['PHP_SELF']; ?>" enctype="multipart/form-data">
                            <div class="form-group">
                                <label><em>* </em>User Type:</label>
                                <select class="form-control input-sm" id="userType">
                                    <option value="all">All</option>
                                    <option value="restaurant">Restaurant</option>
                                    <option value="channelPartner">Channel Partner</option>
                                    <option value="agent">Delivery Agent</option>
                                </select>
                            </div>
                            <div class="form-group">
                                <label><em>* </em>Select Document (pdf):</label>
                                <input type="file" class="input-sm" id="doc" name="doc">
                            </div>
                            <div class="form-group">
                                <input type="submit" class="input-sm" id="submit" name="submit" value="Submit">
                                <span class="status"></span>
                            </div>
                        </form>
                    </div>
                </div>
            </div>
        </div>
        <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
        <script type="text/javascript" src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js"></script>
        <script type="text/javascript">
            $(document).ready(function(){
                $('#submit').click(function(e){
                    e.preventDefault();
                    var doc = $('#doc').val();
                    var extension = doc.substring(doc.lastIndexOf(".") + 1, doc.length);
                    extension = extension.toLowerCase();
                    if ( doc == '' ) {
                        $('.status').html('Please select pricing document');
                    }
                    else if( extension != 'pdf' ){
                        $('.status').html('Document must be a pdf');
                    }
                    else {
                        $('#docForm').submit();
                    }
                });
            });
        </script>
    </body>
</html>

您的问题来自您已经告诉过要阻止提交发生的单击句柄中的e.preventDefault();。如果将该行相应地移动到 if 语句

 $(document).ready(function() {
    $('#submit').click(function(e) {
      var doc = $('#doc').val();
      var extension = doc.substring(doc.lastIndexOf(".") + 1, doc.length);
      extension = extension.toLowerCase();
      if (doc == '') {
        $('.status').html('Please select pricing document');
        e.preventDefault();
      } else if (extension != 'pdf') {
        $('.status').html('Document must be a pdf');
        e.preventDefault();
      } else {
        $('#docForm').submit();
      }
    });
  });

您的$('#docForm').submit()将被执行。但是由于这已经是最后else的提交句柄,因此可以省略$('#docForm').submit();因为它并不重要。

最新更新