2013-03-08 50 views
0

我想優化我的代碼,想知道這裏有人能否給我伸出援助之手。動態設置多個表單值到一個JavaScript對象

在我解釋我的問題之前,讓我爲您提供我的html和js/jquery代碼以供您欣賞樂趣!

HTML:

<tr> 
<td> 
    <input email="[email protected]" value="4560" type="checkbox" id="task_checked"> 
</td> 
<td>[email protected]</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="[email protected]" value="6012" type="checkbox" id="task_checked"> 
</td> 
<td>[email protected]</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="[email protected]" value="5604" type="checkbox" id="task_checked"> 
</td> 
<td>[email protected]</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="[email protected]", 6012="[email protected]", 5604="[email protected]" } 

//output for var AddedEmailsArr= {}; 
[ 
Object { Task_ID="4560", email="[email protected]", category="example1" }, 
Object { Task_ID="6012", email="[email protected]", category="example2" }, 
Object { Task_ID="5604", email="[email protected]", category="example2" } 
] 

爲了優化我的代碼我想擺脫這兩個對象,並使一個對象。

下面是我想要的樣子。

[ 
Object { Task_ID="4560", email="[email protected]", category="example1" }, 
Object { Task_ID="6012", email="[email protected]", category="example2" }, 
Object { Task_ID="5604", email="[email protected]", category="example2" }, 
Object { Task_ID="4560", email="[email protected]" }, 
Object { Task_ID="6012", email="[email protected]" }, 
Object { Task_ID="5604", email="[email protected]" } 
] 

希望我的問題是有道理的,我真的很感謝你們對這個問題的任何幫助。請感謝我澄清任何事情。

謝謝。

+0

你沒有真的在這裏問過一個問題,只是告訴我們它應該是什麼樣子。爲什麼它看起來像這樣?你能提供一些背景嗎? – Prisoner 2013-03-08 16:52:54

+0

@Prisoner你好,因爲目前我將兩個對象傳遞給我的後端,我希望它是一個。謝謝。 – BaconJuice 2013-03-08 17:03:51

回答

0

我沒有時間完全瞭解所有的細節。但我認爲你可能需要退後一步並重新考慮這種方法。 ID應該是唯一的,你可以看看使用「數據」屬性,而不是創建自己的屬性。這似乎是你在正確的思維過程,但不是堅實的基礎。