【发布时间】:2020-11-25 11:19:27
【问题描述】:
我需要将数字格式传递给 JSON,并且我不能使用隐藏的输入类型,因为它返回字符串。我有 const formDataJsonString = JSON.stringify(plainFormData); 将表单数据转换为 JSON(见下文)
如何使用我在下面添加的函数将 javascript 变量从表单发布到 JSON?
我写这个是为了把它转换成数字,但不知道如何将 javascript 变量提交到 JSON。
<input type="hidden" class="number" name="applicationType" value=3>
$("#form").submit(function(){
var formInfo = document.forms['form'];
var applicationType = parseInt($(".number").val());
});
JSON 中的期望结果:
applicationType: 3
代替:
applicationType: "3"
更新 1: 所以我有这个把它变成JSON,然后发布它:
//url is the api
async function postFormDataAsJson({ url, formData }) {
const plainFormData = Object.fromEntries(formData.entries());
//put all accountsToLink value into an array
plainFormData["accountsToLink"] = new Array //create array
$("input[name=accountsToLink] ").each(function() {
plainFormData["accountsToLink"].push($(this).val()) //push value in array
});
const formDataJsonString = JSON.stringify(plainFormData);
const fetchOptions = {
method: "POST",
headers: {
"Content-Type": "application/json",
Accept: "application/json",
},
body: formDataJsonString,
};
const response = await fetch(url, fetchOptions);
if (!response.ok) {
const errorMessage = await response.text();
throw new Error(errorMessage);
}
else if (response.ok) {
window.location.href = "confirmation.html";
}
return response.json();
}
async function handleFormSubmit(event) {
event.preventDefault();
const form = event.currentTarget;
const url = form.action;
try {
const formData = new FormData(form);
const responseData = await postFormDataAsJson({ url, formData });
console.log({ responseData });
} catch (error) {
console.error(error);
}
}
const testform = document.getElementById('testform');
testform.addEventListener('submit', handleFormSubmit);
【问题讨论】:
-
用你给我们看的代码,数字不太可能变成字符串
-
我想你可能误解了我的意思。因为隐藏的输入类型给了我applicationType:“3”。我正在处理不完整的 jquery 以将其转换为数字,并希望从 jquery 发布变量,就像普通表单在隐藏输入类型的情况下一样。
-
我只看到您提供的代码
applicationType = parseInt($(".number").val()并且使用该代码您有一个数字 - 当您 JSON.stringify 它时,正如我在我的回答中显示的那样 -
请显示将其转换为 API 的 JSON 的代码
-
好的,我已经更新了我的问题,请看一下。
标签: javascript json forms input hidden