从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"); } 但是,

我使用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");
}
但是,当我将数据转换为我希望使用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时如何检索它?