jquery - 如何使用于表单提交的 Ajax 脚本在多个表单上工作
问题描述
我有一个有效的 Ajax 脚本,它提交表单并在 DIV 中显示内容成功,但目前它仅在我有 1 个表单时才有效,但在我的页面上我需要有多个表单,应该使用此脚本提交表单并回复给用户。
阿贾克斯:
<script>
$(function () {
$("form").validate();
});
$( "form" ).on( "submit", function(e) {
var dataString = $(this).serialize();
$.ajax({
type: "POST",
url: "update_userdata.asp",
data: dataString,
success: function () {
$("#EconomyColumnsResponse2").html("<div id='message' style='background-color: #28a745;'></div>");
$("#message")
.html("<font style='color: white;'>Løn Information er nu opdateret <i class='fas fa-check-circle'></i></font>")
.hide()
.fadeIn(1500, function () {
$("#message").append(
""
);
});
}
});
e.preventDefault();
});
setTimeout(function(){
$('#EconomyColumnsResponse2').fadeOut('slow');
}, 15000)
</script>
假设我有 2 个表格(还有更多具有相同名称但附加 ID 不同的表格,即 EconomyColumns1 = 名称 + ID),如下所示:
<div id="EconomyColumnsResponse1">
</div>
<form name="EconomyColumns1" id="EconomyColumns1" action="">
<input type="hidden" name="UserID" id="UserID" value="1">
<input type="hidden" name="ColumnToUpdate" id="ColumnToUpdate" value="EconomyColumns">
<fieldset>
<div class="input-box">
<label for="name" id="name_label">lonnr</label>
<input type="text" name="lonnr" id="lonnr" minlength="3" class="text-input" required/>
</div>
<div class="input-box">
<label for="email" id="email_label">debnr</label>
<input type="text" name="debnr" id="debnr" class="text-input"/>
</div>
<div class="input-box">
<label for="phone" id="phone_label">orgnr</label>
<input type="text" name="orgnr" id="orgnr" class="text-input"/>
</div>
<input type="submit" name="submit" id="submit_btn" value="Send" />
</fieldset>
</form>
<div id="EconomyColumnsResponse2">
</div>
<form name="EconomyColumns2" id="EconomyColumns1" action="">
<input type="hidden" name="UserID" id="UserID" value="2">
<input type="hidden" name="ColumnToUpdate" id="ColumnToUpdate" value="EconomyColumns">
<fieldset>
<div class="input-box">
<label for="name" id="name_label">lonnr</label>
<input type="text" name="lonnr" id="lonnr" minlength="3" class="text-input" required/>
</div>
<div class="input-box">
<label for="email" id="email_label">debnr</label>
<input type="text" name="debnr" id="debnr" class="text-input"/>
</div>
<div class="input-box">
<label for="phone" id="phone_label">orgnr</label>
<input type="text" name="orgnr" id="orgnr" class="text-input"/>
</div>
<input type="submit" name="submit" id="submit_btn" value="Send" />
</fieldset>
</form>
我怎样才能让我的 Ajax 变得动态,这样我就不需要像我拥有的表单一样多的 Ajax 脚本,而只需要拥有吗?.. 作为一个小转折, $("#message").. 应该根据提交的表单而有所不同。
希望有人可以提供帮助:-)
此致
斯蒂格:-)
解决方案
在表单前为 DIV 设置一个变量,并在回调函数中使用该变量。
$("form").on("submit", function(e) {
var dataString = $(this).serialize();
let response_div = $(this).prev();
$.ajax({
type: "POST",
url: "update_userdata.asp",
data: dataString,
success: function() {
response_div.html("<div id='message' style='background-color: #28a745;'></div>");
$("#message")
.html("<font style='color: white;'>Løn Information er nu opdateret <i class='fas fa-check-circle'></i></font>")
.hide()
.fadeIn(1500, function() {
$("#message").append(
""
);
});
}
});
e.preventDefault();
});
推荐阅读
- unreal-engine4 - 如何使用打包程序动态更改模板?
- python - Twitter Streaming API:仅显示针对用户的推文和来自用户的推文
- c++ - c++ 中用于序列化的用户定义属性是可能的吗?
- javascript - 如何从 nodejs 代码运行 psql 创建表脚本
- css - CSS 和 flexbox 响应式布局
- python - 将 RLlib 与 Jupyter 小部件一起使用
- amazon-web-services - API Gateway v2 未从 OPTIONS 调用返回 CORS 标头
- python-3.x - 在多年数据集中找到平均每个月的增长百分比
- python - 请给我看一个“圆角按钮”,其背景在按下时会改变颜色并在 Kivy 中释放时恢复原始颜色
- python - Matplotlib matshow:显示所有刻度标签