如何在具有Ajax的单个表单中使用多个Submit按钮
How to use multiple Submit buttons in a single form having Ajax
我正在构建一个简单的网站,它使用mysql作为后端。我有一个表单,它有两个按钮,其中一个按钮从数据库中搜索数据,并使用Ajax填充页面;另一个按钮将新值更新到数据库。现在我的问题是我不能同时使用这两个按钮作为"提交"按钮。
Ajax方法&Html形式:
<script type="text/javascript">
$(document).ready(function(){
$(document).on('submit', '#update-form', function(){
var data = $(this).serialize();
$.ajax({
type : 'POST',
url : 'search.php',
data : data,
success : function(data){
$(".display").html(data);
}
});
return false;
});
});
</script>
<body>
<div id="update" class="tab-pane fade">
<form id="update-form" role="form" class="container" method="post" action="search.php">
<h3>Update details</h3>
<table class="display">
<tr class="space">
<td><label>File Number:</label></td>
<td><input type="text" class="form-control" name="filenum" required></td>
</tr>
</table>
<button type="submit" class="btn btn-default text-center" name="search_btn" >Search</button>
<button type="submit" class="btn btn-default text-center" name="submit_btn" formaction="update.php">Update</button>
</form>
</div>
</body>
现在我想知道如何修改上面的代码,这样我就可以使用两个按钮作为提交。
尝试使用formaction
,但由于使用Ajax方法,它不起作用
您可以通过多种方式实现这一点。
我首先想到的是:将按钮类型更改为按钮而不是提交,并添加onclick属性
<button type="button" onclick="submitForm('search.php')">Search</button>
<button type="button" onclick="submitForm('update.php')">Update</button>
然后在您的javascript中:
function submitForm(url){
var data = $("$update-form").serialize();
$.ajax({
type : 'POST',
url : url,
data : data,
success : function(data){
$(".display").html(data);
}
});
}
在jquery中,您可以触发提交。检查此项:https://api.jquery.com/submit/
您创建了一个div或其他,并在jquery中为这个div添加了一个监听器:
<div id="button">Here my button</div>
在jquery 中
$('#button').on('click', function(){
$('#update-form').submit()
}
<form id="update-form">
...
...
<button type="button" class="submitForm" formaction="search.php">Search</button>
<button type="button" class="submitForm" formaction="update.php">Update</button>
</form>
然后你的JS:
$('.submitForm').click(function(){
$.ajax({
method: 'post',
url: $(this).attr('formaction),
data: $("#update-form").serialize(),
...
...
success: function(){ }
});
});
$(document).ready(function(){
$(document).on('submit', '#update-form', function(){
var data = $(this).serialize();
$.ajax({
type : 'POST',
url : 'search.php',
data : data,
success : function(data){
$(".display").html(data);
}
});
return false;
});
$(document).on('click', '#update-btn', function(){
var data = $("input[name='filenum']").val(); //Handle how you want
$.ajax({
type : 'POST',
url : 'update.php',
data : data,
success : function(data){
$(".display").html(data);
}
});
});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<body>
<div id="update" class="tab-pane fade">
<form id="update-form" role="form" class="container" method="post" action="search.php">
<h3>Update details</h3>
<table class="display">
<tr class="space">
<td><label>File Number:</label></td>
<td><input type="text" class="form-control" name="filenum" required></td>
</tr>
</table>
<button type="submit" class="btn btn-default text-center" name="search_btn" >Search</button>
<button form='forn-is-not-exist' class="btn btn-default text-center" name="submit_btn" id="update-btn" >Update</button>
</form>
</div>
</body>
查看
相关文章:
- 单选按钮的验证(启用)&使用Jquery Optimization从复选框中选择submit按钮
- 如何获得<html:submit>按钮是在javascript中单击的
- 如何阻止一个Submit按钮运行Submit Click功能
- 在Firefox中,当type=submit for按钮时,请求服务器失败
- 如何使用jquery或javascript禁用submit类型的按钮标记
- 使用ajax和jquery将type按钮转换为submit
- 服务器脚本可以检测表单是使用提交按钮还是使用javascript:submit()发布的
- 点击表单外部的按钮,在表单中的submit按钮上调用submit
- 发送<表单>通过两个不同的Submit按钮获取信息,这两个按钮调用相同的函数,但需要知道调用来自哪个Subm
- 提交按钮和文档.Form.submit()不同的脚本进行处理
- 使用MVC 3剃刀中自动生成的post-submit/create按钮发送参数
- 当您禁用按钮[type=submit]时,是否可以触发提交事件
- 名称为submit的按钮停止触发表单's提交事件
- Inline input type="submit"按钮似乎重叠在onclick上
- ASP.NET MVC表单:可以用ENTER键提交,但不能用submit按钮提交
- onchange =“this.form.submit()“;而不是两个提交按钮
- 提交信息,然后在按钮中打开新网页.使用Form type = submit的多个操作
- 嵌套表单上的Submit按钮在IE7中提交外部表单
- 用于将按钮submit上的不同页面与数组重定向到springController()
- 提交按钮 .submit 还原为默认行为