为了账号安全,请及时绑定邮箱和手机立即绑定

遍历input到数组对象

遍历input到数组对象

胡子哥哥 2019-03-21 18:15:30
<!DOCTYPE html><html><head>    <meta charset="UTF-8">    <meta name="viewport" content="width=device-width, initial-scale=1.0">    <meta http-equiv="X-UA-Compatible" content="ie=edge">    <title>Document</title></head><body>            <form class="form-horizontal" role="form">        <div class="form-group">            <label class="control-label">money:</label>            <div>                <input type="text" name="money" class="form-control">            </div>        </div>        <div class="form-group">            <label class="control-label">age:</label>            <div>                <input type="text" name="age" class="form-control">            </div>        </div>        <div class="form-group">            <label class="control-label">height:</label>            <div>                <input type="text" name="height" class="form-control">            </div>        </div>        <div class="form-group">            <div class="col-sm-offset-2">                <button type="button">保存</button>            </div>        </div>    </form>        <script>        // 1、遍历所有的 input 取到它们的value 和 name 值存到数组对象里;        // 2、新手有点伤脑筋,求老师父指点一下下。        var postdata = {            id:'',            title:'',            content:'',            forms:[]        }        var forms = {            label:'',            value:''        }        // 现在是想把input 的 name 存到 forms.label里         // input的value 存到 forms.value 里;        // 然后再把 forms 添加到 postdata.forms数组里。        // 好难阿 >_<  我的是思路是先给所有的 input 一个class valiform         // 然后 jQuery $.each valiform ;         // $.each(valiform,function(i,v){        //     myforms.label = $(this).attr('name');        //         myforms.value = $(this).val();        //         saveData.forms[i] = myforms;        //     });        //  这样是错的。搞不定了!    </script></body></html>
查看完整描述

4 回答

?
拉莫斯之舞

TA贡献1820条经验 获得超10个赞

$.each(valiform,function(i,v){

postdata.forms.push({

    label: $(this).attr('name'),

    value: $(this).val()

});

});


查看完整回答
反对 回复 2019-04-05
?
潇湘沐

TA贡献1816条经验 获得超6个赞

Array.from(document.querySelectorAll('input'),e=>{const obj={};obj[e.name]=e.value;returnobj})


查看完整回答
反对 回复 2019-04-05
?
慕妹3146593

TA贡献1820条经验 获得超9个赞

你看下 这个效果是否是你需要的效果


var postdata = {

            id:'',

            title:'',

            content:'',

            forms:{}

        }

        var forms = {

            label:[],

            value:[]

        }

        document.querySelectorAll('input').forEach(function (e,i){

            forms.label.push(e.name);

            forms.value.push(e.value);

        });

        postdata.forms=forms;

        console.log(forms);

        console.log(postdata.forms);

还有一点就是 postdata.forms 你这边是个数组对象,而下面的 forms又是个JSON对象,虽然对调用对象没什么区别,但是最好还是改成同类型


望早日解决问题~


查看完整回答
反对 回复 2019-04-05
  • 4 回答
  • 0 关注
  • 546 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信