gpt4 book ai didi

javascript - 是否可以在有两个Ajax的页面中调用表单?

转载 作者:行者123 更新时间:2023-12-03 04:28:59 25 4
gpt4 key购买 nike

我在一个页面上有两个表单,一个用于上传文件,另一个表单在文件上传后弹出,要求提供电子邮件。两者都使用 ajax,我在处理它们时遇到了一些麻烦。

我希望我的每个 ajax 代码只能在各自的表单上工作,而不是在我的 html 页面上找到的第一个表单(现在只有最高的 <form></form> 由我的 ajax 代码执行)。

AJAX:

# for uploading files form
$("#fileupload").fileupload({
dataType: 'json',
sequentialUploads: true,
start: function (e) {
$("#modal-progress").modal("show");
},
...
done: function (e, data) {
if (data.result.is_valid) {
...
}
}
});

# for email form
$(document).on('submit', '#formTwo', function(e){
e.preventDefault();

$.ajax({
# is there a command to specify in which form it should run ?
type:'POST',
url:'/tools/newsletter/',
data:{
email:$('#email').val(),
csrfmiddlewaretoken:$('#formTwo input[name=csrfmiddlewaretoken]').val(),
},
});

$("#modal-progress").modal("hide");
});

forms.html

<!-- Email form -->
<form id="formTwo" method="post" action="newsletter">
...
<input id="email" maxlength="255" placeholder="Votre adresse email" name="email" type="text" class="form-control">
<input type="submit" class="btn btn-success">
</form>


<!-- Uploading files form -->
<form id="formOne" method="post" enctype="multipart/form-data" action="{% url 'basic_upload' %}">
...
<input id="fileupload" type="file" name="file" multiple>
</form>

我该如何解决这个问题?

最佳答案

您可以在 if 语句中使用 $(this).is(selector) 来验证您正在处理的表单,例如

$(document).on('submit', '#formTwo, #formOne', function(e){
e.preventDefault();

if($(this).is('#formTwo')) {
$.ajax({
type:'POST',
url:'/tools/newsletter/',
data: {
email:$('#email').val(),
csrfmiddlewaretoken:$('#formTwo input[name=csrfmiddlewaretoken]').val(),
},
});
} else if ($(this).is('#formOne')) {
// formOne code
}

$("#modal-progress").modal("hide");
});

关于javascript - 是否可以在有两个Ajax的页面中调用表单?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43576672/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com