我试图通过模式提交表单,但我有问题,因为页面重新加载提交,我已经阻止了默认操作,但页面仍然重新加载。
我不知道为什么这会给我带来麻烦,有人能帮我吗?
HTML代码:
<body>
<button type="button" class="btn btn-primary" data-toggle="modal" data-target="#myModal">
Launch demo modal
</button>
<!-- Modal Area-->
<!-- Modal -->
<div class="modal fade" id="myModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel">
<div class="modal-dialog modal-xl" role="document">
<div class="modal-content">
<div class="modal-header">
<div class="close text-secondary" data-dismiss="modal" aria-label="Close">
<button type="button" class="close" aria-label="Close">
<span aria-hidden="true">Close</span>
</button>
</div>
<div class="text-secondary font-weight-normal info" id="info"></div>
</div>
<div class="modal-body">
<div class="row">
<div class="col-md-4 col-sm-4 col-3 profile">
<ul>
<li class="side-link"><a href="#" id="home" >Profile</a></li>
<li class="side-link"><a href="#" id="design" >Account & Security</a></li>
<li class="side-link"><a href="#" id="account" >Notifications</a></li>
<li class="side-link"><a href="#" id="about" >Help</a></li>
<li class="side-link"><a href="#" id="logout" >Logout</a></li>
</ul>
</div>
<div class="col-md-8 col-sm-8 col-9" id="home-box">
<img src="https://source.unsplash.com/random/200x200">
<a href="#">Edit</a>
<h4 class="text-secondary mt-2 text-sm">PROFILE INFO</h4>
<div class="mt-2">
<form method="POST" action="#" id="edit-form">
<div class="form-group">
<label>First name</label>
<input type="text" name="fname" id="fname" class="form-control">
</div>
<div class="form-group">
<label>Last name</label>
<input type="text" name="lname" id="lname" class="form-control">
</div>
<div class="mt-2">
<h4>Additional Info</h4>
<div class="form-group-inline">
<label>Display name</label>
<input type="text" name="dname" id="dname" class="form-control">
</div>
<div class="form-group">
<label>Website</label>
<input type="text" name="website" id="website" class="form-control">
</div>
<div class="form-group">
<label>Bio </label>
<textarea class="form-control" name="description" id="description" rows="4" cols="5" placeholder="Enter a short description about yourself"></textarea>
</div>
</div>
<input type="submit" id="save-btn" class="btn btn-primary" value="save value">
</form>
</div>
</div>
<div class="col-md-8" style="display: none;" id="design-box">
</div>
<div class="col-md-8" id="account-box" style="display: none;">
<h3>Account Section</h3>
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Libero dignissimos excepturi at, maiores nesciunt vel delectus consequuntur mollitia a exercitationem!</p>
</div>
<div class="col-md-8" id="about-box" style="display: none;">
</div>
</div>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
<button type="button" class="btn btn-primary">Save changes</button>
</div>
</div>
</div>
</div>
<!-- Modal Area End -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.5.1/jquery.min.js" integrity="sha512-bLT0Qm9VnAYZDflyKcBaQ2gg0hSYNQrJ8RilYldYQ1FxQYoCLtUjuuRuZo+fjqhx/qtq/1itJ0C2ejDxltZVFg==" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.5.3/js/bootstrap.min.js" integrity="sha512-8qmis31OQi6hIRgvkht0s6mCOittjMa9GMqtK9hes5iEQBQE/Ca6yGE5FsW36vyipGoWQswBj/QBm2JR086Rkw==" crossorigin="anonymous"></script>
<script src="main.js"></script>
</body>
</html> 和Javascript
$(document).ready(()=>{
$('#drop-down').click((e)=>{
e.preventDefault()
})
var def = $('#home').text()
$('#info').text(def)
//Home functions
$('#home').click((e)=>{
e.preventDefault()
$('#design-box').hide()
$('#account-box').hide()
$('#about-box').hide()
$('#home-box').show()
var infoDisplay = $('#home').text()
$('#info').text(infoDisplay)
$('#edit-form').submit((e)=>{
e.preventDefault()
console.log('form-submit',$('#edit-form').serializeArray())
})
})
//Design functions
$('#design').click((e)=>{
e.preventDefault()
$('#account-box').hide()
$('#about-box').hide()
$('#home-box').hide()
$('#design-box').show()
var infoDisplay = $('#design').text()
$('#info').text(infoDisplay)
console.log("show box")
})
//Account functions
$('#account').click((e)=>{
e.preventDefault()
$('#design-box').hide()
$('#home-box').hide()
$('#about-box').hide()
$('#account-box').show()
var infoDisplay = $('#account').text()
$('#info').text(infoDisplay)
})
//About function
$('#about').click((e)=>{
e.preventDefault()
$('#design-box').hide()
$('#home-box').hide()
$('#account-box').hide()
$('#about-box').show()
var infoDisplay = $('#about').text()
$('#info').text(infoDisplay)
})
// Logout functions
$('#logout').click((e)=>{
e.preventDefault()
if(confirm('Are you sure you want to quit?')){
console.log('redirects to home page')
}else{
console.log('clicked no')
}
})
})发布于 2020-11-27 20:26:38
我制作了一个jsfiddle来向您展示如何获取FormData对象:
https://jsfiddle.net/ac81hk97/
$('form').on('submit', function(ev) {
ev.preventDefault();
const $form = $(this);
const formData = new FormData($form[0]);
const formObj = {};
for (var key of formData.keys()) {
console.log(key);
formObj[key] = formData.get(key);
}
const json = JSON.stringify(formObj);
$('#json').text(json);
})<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<form id="222" action="">
<input type="text" name="first_input">
<input type="text" name="second_input">
<button>submit</button>
</form>
<div id="json"></div>
如果您查看this answer,就会看到如何使用form.serialize()提交它
https://stackoverflow.com/questions/65037132
复制相似问题