Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/374.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 将表单数据转换为对象_Javascript - Fatal编程技术网

Javascript 将表单数据转换为对象

Javascript 将表单数据转换为对象,javascript,Javascript,我不想将数据发布到服务器,我想将其传递到接受对象的客户端函数。最好的方法是什么?您只需创建自己的对象即可: <form name='f1'> <input type='text' name='firstname' /> <input type='text' name='lastname' /> </form> window.onload = function() { var Person = { 'First

我不想将数据发布到服务器,我想将其传递到接受对象的客户端函数。最好的方法是什么?

您只需创建自己的对象即可:

<form name='f1'>

<input type='text' name='firstname' />
<input type='text' name='lastname' />

</form>

window.onload = function()
{
    var Person = 
    {  
      'FirstName' : document.f1.firstname.value, 
      'LastName' : document.f1.lastname.value 
    }
}

window.onload=函数()
{
个人变量=
{  
“FirstName”:document.f1.FirstName.value,
“LastName”:document.f1.LastName.value
}
}
JSON对象
只是一个常规的Javascript对象,因为JSON是Javascript的子集。

如果您正在使用它,您可能希望查看它提供的函数,因为它在一次调用中完成了所有您想要的功能。使用


$(函数(){
$('form[name=“f1”]”)。提交(函数(){
var person=$(this.serializeArray();
//现在就对“人”做你想做的。。。
});
});
这样,您就不必手动构建对象并为每个字段声明属性,这有助于避免人为错误


如果出于某种原因您不想使用,那么您可以随时查看所使用的逻辑并创建自己的函数。

您可以详细说明/添加一些上下文吗?看看这个问题-“我想将其传递到一个接受json对象的客户端函数中。”我给您10:1的几率,您不需要,相反,您希望将其传递给接受JavaScript对象的客户端函数。JSON纯粹是一种文本表示法;当您实际与事物交互时,它们是JavaScript对象,与JSON没有任何关系。现在,如果您的客户端函数接受一个字符串,并希望该字符串包含它将反序列化和处理的JSON编码数据,则表示歉意。:-)但我怀疑没有。+1具体来说,没有“JSON对象”。只有对象的JSON表示。这与JSON没有任何关系。@TJ再真实不过了,你的首字母写得很好;)
@TJHeuvel:
是的,你也是。:-)hrrm,这不太好用。它产生这个字符串
email=test%40example.com&password=1234
我的目标是拥有
{email:'test@example.com,密码:'1234'}
@Alasdair@fancy哎呀!我无意中使用了错误的函数。请查看我对答案所做的更改。基本上,使用
.serializeArray()
而不是
.serialize()
。这将为每个字段提供一个包含对象的数组,该对象具有
名称
属性。如果您想要具有名称/值映射的单个对象(很可能),您可能希望创建一个附加函数:
<script type="text/javascript">
    $(function () {
        $('form[name="f1"]').submit(function() {
            var person = $(this).serializeArray();
            // Do what you will with 'person' now...
        });
    });
</script>
<form name="f1">
    <input type="text" name="firstname" />
    <input type="text" name="lastname" />
    <input type="submit" value="Submit" />
</form>