沒事都是沒法理解Form的原理,不喜歡自動提交數據。可是又喜歡html5 原生對於input(特殊類型)的判斷,html
因此須要能夠找到點擊button (type=submit)時,能夠作到:html5
HTML 代碼部分:ajax
使用了Bootstrap 4.2 <form id="login_form"> <div class="form-group row"> <label for="login_email" class="col-sm-4 col-form-label">*Email</label> <div class="col-sm-8"> <input type="email" class="form-control" id="login_email" aria-describedby="emailHelp" placeholder="username@aaa.com"> </div> </div> <div class="form-group row"> <label for="login_password" class="col-sm-4 col-form-label">*Password</label> <div class="col-sm-8"> <input type="password" class="form-control" id="login_password" placeholder="Password"> </div> </div> <!--Error Msg Part--> <div id="login_error_msg" class="alert alert-danger" role="alert"></div> <div class="row"> <div class="col-sm-4 offset-sm-9"> <button type="submit" class="btn btn-primary"> <i class="fas fa-sign-in-alt"></i> 登錄 </button> </div> </div> </form>
JS 代碼部分:json
$("#login_form").on('submit', function (ev) { // html5 原生 validation ev.preventDefault(); // POST data,本身Ajax var data = { 'email': $("#login_email").val().trim(), 'password': $("#login_password").val().trim(), }; //$("#login_main").mask("認證中..."); $.ajax({ type: "POST", url: "/login/", data: data, dataType: 'json', success: function (result) { // do something }, complete: function () { // $("#login_main").unmask("認證中..."); }, error: function (XMLHttpRequest, textStatus, errorThrown) { alert(XMLHttpRequest.status + " >>> " + textStatus + "\n" + XMLHttpRequest.responseText); }, }); })
完美的解決了個人需求~~JS部分仍是不是很熟,也是從別人那裏找到的代碼。。有時間搞懂爲啥這麼寫~~~ide