繁体   English   中英

动态地在JavaScript对象中设置多个表单值

[英]Setting multiple form values in to a JavaScript Object dynamically

我正在尝试优化我的代码,并想知道这里是否有人可以帮助我。

在我解释我的问题之前,让我为您提供我的html和js / jquery代码,以供您欣赏!

HTML:

<tr>
<td>
    <input email="a@a.com" value="4560" type="checkbox" id="task_checked">
</td>
<td>a@a.com</td>
</tr>
<tr>
<td>
    <div>
        <span>E-Mail: </span><input id="4560" type="text" name="added_email" class="added_email">
        <span>Enter Book Name: </span><input id="4560" type="text" class="category"> 
    </div>
</td>
</tr>

<tr>
<td>
    <input email="b@b.com" value="6012" type="checkbox" id="task_checked">
</td>
<td>b@b.com</td>
</tr>
<tr>
<td>
    <div>
        <span>E-Mail: </span><input id="6012" type="text" name="added_email" class="added_email">
        <span>Enter Book Name: </span><input id="6012" type="text" class="category"> 
    </div>
</td>
</tr>

<tr>
<td>
    <input email="c@c.com" value="5604" type="checkbox" id="task_checked">
</td>
<td>c@c.com</td>
</tr>
<tr>
<td>
    <div>
        <span>E-Mail: </span><input id="5604" type="text" name="added_email" class="added_email">
        <span>Enter Book Name: </span><input id="5604" type="text" class="category"> 
    </div>
</td>
</tr>

希望那不会吓到你!

这是我的Jquery。

var newTasksArr = {};
 $("#task_checked:checked").each(function() {
var email = $(this).attr("email");
var id = $(this).val();
newTasksArr[id] = email;
});


var AddedEmailsArr = [];

var inputs = $('input.added_email'), tmp;
$.each(inputs, function(i, obj) {
tmp = {
    'Task_ID': $(obj).attr('id'),
    'email': $(obj).val(),
    'category' : $(obj).siblings('.category').val(),
};

AddedEmailsArr.push(tmp);
});

如您所见,目前我有两个Jquery函数正在尝试整合其中。

让我向大家展示一下输出结果。

//output for var newTasksArr = {};
Object { 4560="a@a.com", 6012="b@b.com", 5604="c@c.com" }

//output for var AddedEmailsArr= {};
[ 
Object { Task_ID="4560",  email="f@f.com.com",  category="example1" }, 
Object { Task_ID="6012",  email="g@g.com.com", category="example2" }, 
Object { Task_ID="5604",  email="z@z.com", category="example2" }
]

为了优化我的代码,我想摆脱两个对象并合并到一个对象中。

下面是我想要的样子。

[ 
Object { Task_ID="4560",  email="f@f.com.com",  category="example1" }, 
Object { Task_ID="6012",  email="g@g.com.com", category="example2" }, 
Object { Task_ID="5604",  email="z@z.com", category="example2" }, 
Object { Task_ID="4560",  email="a@a.com" }, 
Object { Task_ID="6012",  email="b@b.com" },
Object { Task_ID="5604",  email="c@c.com" } 
]

希望我的问题有道理,对于在这个问题上的任何帮助,我将不胜感激。 请感觉有任何要求我澄清的问题。

谢谢。

我没有时间完全了解所有细节。 但是我认为您可能需要退后一步,重新考虑该方法。 ID应该是唯一的,您可能会考虑使用“数据”属性,而不是创建自己的属性。 看来您处于正确的思考过程中,但基础并不牢固。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM