[英]I can't get my form to submit after using preventdefault
我在模態結構中有一個表單,我從用戶那里收集一些信息,之后我想將該信息提交到發布請求中,以便我可以在 python 中處理它。
問題是我需要先檢查用戶是否真的輸入了信息,所以我不會得到空值。
我正在使用.preventDefault()
來停止提交並檢查值。 只要我不使用preventDefault
,該程序就可以正常發布,並且在使用它時實際上不會發布。
問題是在通過所有條件后,它應該發布,但沒有這樣做,我不知道為什么。
這是表單的代碼:
<form id="forminout" action="/in_out" method="post">
<div class="modal fade bd-example-modal-lg" tabindex="-1" role="dialog" id="incomeModal">
<div class="modal-dialog modal-lg" role="document">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title">Add your new income</h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">×</span>
</button>
</div>
<div class="modal-body" id="new_incomes">
<div style="padding:3%">
<input step=".01" type="number" class="form-control input-sm" name="incoming" min="0" placeholder="0">
<select class="incomselect" name="incomeselects" style="height:30px;">
<option selected disabled>This income is coming from?</option>
<option value="rent">Rents</option>
<option value="salary">Salary</option>
<option value="invest_reveneu">Investments reveneus</option>
<option value="others">Others</option>
</select>
<select class="incomdate" name="incomedate" style="height: 30px;">
<option selected disabled>Incoming date</option>
<option value=5>1 - 5</option>
<option value=10>6 - 10</option>
<option value=15>11 - 15</option>
<option value=20>16 - 20</option>
<option value=25>21 - 25</option>
<option value=31>26 - 31</option>
</select>
</div>
</div>
<div class="modal-footer">
<button class="btn btn-primary" id="addinbutt" type="submit">Save changes</button>
<button type="button" class="btn btn-secondary" data-dismiss="modal">Close</button>
</div>
</div>
</div>
</div>
</form>
這工作正常,因為帖子實際上正在發生。
這是發布請求的“簡化”代碼:
$("document").ready(function(){
$("form").on("submit", function(e){
errors = 0;
e.preventDefault();
if (errors==0)
{
document.getElementById("#forminout").submit();
}
})
})
在這種情況下, errors==0
條件僅用作簡化,假設我需要檢查的所有實際條件都可以。
我就是發不出去。
解決方案:寫this.submit()
或e.target.submit()
而不是doc.getElById().submit()
$("document").ready(function(){ $("#forminout").on("submit", function(e){ e.preventDefault(); // ur conditions... this.submit(); }) })
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <form id="forminout" action="/in_out" method="post"> <div class="modal fade bd-example-modal-lg" tabindex="-1" role="dialog" id="incomeModal"> <div class="modal-dialog modal-lg" role="document"> <div class="modal-content"> <div class="modal-header"> <h5 class="modal-title">Add your new income</h5> <button type="button" class="close" data-dismiss="modal" aria-label="Close"> <span aria-hidden="true">×</span> </button> </div> <div class="modal-body" id="new_incomes"> <div style="padding:3%"> <input step=".01" type="number" class="form-control input-sm" name="incoming" min="0" placeholder="0"> <select class="incomselect" name="incomeselects" style="height:30px;"> <option selected disabled>This income is coming from?</option> <option value="rent">Rents</option> <option value="salary">Salary</option> <option value="invest_reveneu">Investments reveneus</option> <option value="others">Others</option> </select> <select class="incomdate" name="incomedate" style="height: 30px;"> <option selected disabled>Incoming date</option> <option value=5>1 - 5</option> <option value=10>6 - 10</option> <option value=15>11 - 15</option> <option value=20>16 - 20</option> <option value=25>21 - 25</option> <option value=31>26 - 31</option> </select> </div> </div> <div class="modal-footer"> <button class="btn btn-primary" id="addinbutt" type="submit">Save changes</button> <button type="button" class="btn btn-secondary" data-dismiss="modal">Close</button> </div> </div> </div> </div> </form>
你甚至可以根據e
參數寫這個:
$("document").ready(function(){
$("#forminout").on("submit", function(e){
e.preventDefault();
// ur conditions ...
e.target.submit();
})
})
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.