javascript - 如何从表单接收信息并使用 jQuery 和 AJAX 提交
问题描述
我目前被困在如何从表单中检索信息并使用 jQuery 提交它
我认为 usingserialize()
会起作用,但它不会将信息放在我需要的地方。这是提交到特定开口的 API 结构以及API 链接
let form = $(this);
form.serialize()
它没有,但它的格式不正确。
这是我需要用户提供的 HTML 结构和信息:
<div class="container">
<div class="form-container">
<div class="header">
<h1>Application form</h1>
</div>
<form action="#" class="applicantForm">
<div class="form-group">
<div class="input-group">
<label for="fname">First Name <span>*</span></label>
<input type="text" name="candidate_first_name">
</div>
<div class="input-group">
<label for="lname">Last Name <span>*</span></label>
<input type="text" name="candidate_last_name">
</div>
</div>
<div class="form-group">
<div class="input-group">
<label for="address">Email <span>*</span></label>
<input type="text" name="candidate_email">
</div>
<div class="input-group">
<label for="postcode">Phone <span>*</span></label>
<input type="text" name="candidate_phone">
</div>
</div>
<div class="form-group">
<div class="input-group">
<label for="city">Resume <span>*</span></label>
<input class="form-control" type="file" name="resume">
</div>
<div class="input-group">
<label for="country">Prompt Question <span>*</span></label>
<input type="text">
</div>
<div class="input-group">
<label for="">Website Link <span>*</span></label>
<input type="text">
</div>
</div>
<button class="submit" type="submit">Apply Now</button>
</form>
</div>
</div>
这是我使用 jQuery 和 Ajax 提交表单的方式:
$(document).ready(function() {
const ApplyOpeningPayloadBuilder = function() {
let payload = {
"fields": []
};
return {
withKeyValue: function(key, value) {
let param = {};
param.key = key;
param.value = value;
payload.fields.push(param);
return this;
},
withFile: function(key, encoded_data, filename) {
let value = {};
value.encoded_data = encoded_data;
value.file_name = filename;
this.withKeyValue(key, value);
return this;
},
build: function() {
return payload;
}
}
}
let encoded_file = "aGVsbG8gd29ybGQ";
let apply_for_an_opening_payload_builder = new ApplyOpeningPayloadBuilder();
apply_for_an_opening_payload_builder.withKeyValue("candidate_first_name", "John");
apply_for_an_opening_payload_builder.withKeyValue("candidate_last_name", "Doe");
apply_for_an_opening_payload_builder.withKeyValue("candidate_phone", "1345454333");
apply_for_an_opening_payload_builder.withKeyValue("candidate_email", "john@doe.com");
apply_for_an_opening_payload_builder.withFile("resume", encoded_file, "resume.txt");
let payload = apply_for_an_opening_payload_builder.build();
$.ajax({
url: 'https://jsapi.recruiterbox.com/v1/openings/367603/apply?client_name=demoaccount',
data: JSON.stringify(payload),
dataType: 'json',
type: 'POST',
success: function(response) {
$("#json-response").html(JSON.stringify(payload));
}
});
});
解决方案
循环输入并apply_for_an_opening_payload_builder.withKeyValue
适当地调用。
$(".applicantForm input[type=text]").each(function() {
apply_for_an_opening_payload_builder.withKeyValue(this.name, this.value);
});
推荐阅读
- javascript - 我可以使用 Javascript 遍历文件夹中的文件并在 HTML 页面上创建指向它们的链接吗?
- python - 使用 Python 的 http.server,我可以禁用目录列表吗?
- python - python中的重力加速度
- python - 从 IDE 中下载时的不同 PyCharm 版本
- reactjs - 为什么我不断收到 Syntax Error: JSON parse 即使我的代码与另一个 API 一起使用?
- python - Discord 机器人升级功能不起作用
- python - 如何调用特定对象的方法并仅影响作为pygame中字典键值的对象?
- next.js - getStaticProps 页面末尾的 _NEXT_DATA_ json 对象对 SEO 的影响
- entity-framework - 将项目添加到多对多关系.net核心时出现问题
- python - 如何改进 pytesseract 参数以正常工作