从Javascript中的HTML表单获取数据总是生成字符串吗?
我使用Javascript截取HTML表单提交:从Javascript中的HTML表单获取数据总是生成字符串吗?,javascript,jquery,html,forms,Javascript,Jquery,Html,Forms,我使用Javascript截取HTML表单提交: var form_api = $("#apiForm"); $(form_api).submit(function(event) { /* stop form from submitting normally */ event.preventDefault(); /* Get input values from form */ var formData = prepFormData("#apiForm"); } 但是,
var form_api = $("#apiForm");
$(form_api).submit(function(event) {
/* stop form from submitting normally */
event.preventDefault();
/* Get input values from form */
var formData = prepFormData("#apiForm");
}
但是,当我将数据转换为我希望使用jQuery将其传递给端点的对象时,所有对象属性都是字符串
function prepFormData(formSelector){
var form_api = $(formSelector);
// Serialize the form data as a PlainObject.
var formData = $(form_api).serializeArray().reduce(function (obj, item) {
obj[item.name] = item.value;
return obj;
}, {});
}
为什么它总是产生字符串?我希望改为以下行为:
如果未输入任何内容,则应生成NULL。
输入值时应产生一个Int。
这是正常的JS行为。类型编号和文本用于在浏览器输入中进行验证。它们不定义其中值的数据类型。默认情况下,它们是字符串。您可以执行转换以供使用。文本字段返回空字符串,因为默认情况下它是空字符串且不为null。这是正常的JS行为。类型编号和文本用于在浏览器输入中进行验证。它们不定义其中值的数据类型。默认情况下,它们是字符串。您可以执行转换以供使用。文本字段返回空字符串,因为默认情况下它是空字符串且不为null。您需要解析输入以满足您的需要。HTML中的每个表单值本质上都是一个字符串 type属性让浏览器知道要显示的字段类型,而不是值的数据类型。例如:
<input type="hidden" value="1">
标签{显示:块;页边距底部:5px;}
名称
整数
浮动
年龄范围
18
18
国
美国
澳大利亚
另外
产品
苹果
橙色
梨
菠萝
您需要解析输入以满足您的需要。HTML中的每个表单值本质上都是一个字符串 type属性让浏览器知道要显示的字段类型,而不是值的数据类型。例如:
<input type="hidden" value="1">
标签{显示:块;页边距底部:5px;}
名称
整数
浮动
年龄范围
18
18
国
美国
澳大利亚
另外
产品
苹果
橙色
梨
菠萝
有没有方法可以查看输入字段的类型为我提供了每个键/值对,以便我可以在prepFormData中执行适当的转换?有没有方法可以查看输入字段的类型为我提供了每个键/值对,以便我可以在prepFormData中执行适当的转换?您只需将任何数据属性添加到领域这将是有益的。在构建PlainObject时,您将如何检索它?您只需向字段添加任何数据属性即可?这将是有益的。构建PlainObject时如何检索它?