2015-11-02 125 views
0

目前創建FormData對象時,選中的複選框中加入的「上」的值,並且未選中的複選框完全不通過。FORMDATA和複選框

難道我有一些隱藏的輸入正確設置複選框砍,或者是有一些定製我可以FORMDATA,或預先處理呢?

我寧願一個選中的複選框爲1和一個未經檢查的爲0。我已經可以做到這一點我自己(即醜陋的黑客攻擊),但我看不出有任何FORMDATA本機方法。

+0

您可以隨時撥打的'FormData'手動對象'set'。否則,它的行爲與HTML表單完全相同。 –

+1

而不是添加隱藏的輸入,在服務器上進行處理。如果複選框值爲'on',則轉換爲1,如果複選框值爲空白或null轉換爲0.複選框值是由瀏覽器驅動的,因此您無法更改它。您可以添加額外的屬性。 – Jigneshk

回答

2

當前創建FormData對象時,選中的複選框添加值爲「on」,未選中的複選框完全不會被傳遞。

on如果該複選框是缺少value屬性

做的僅僅是使用我有一些隱藏的輸入破解正確設置複選框

號這正確處理複選框。這是他們如何在窗體中工作,因爲表單元素已被添加到HTML中。

試驗在處理它的代碼的存在或不存在的複選框的。

+0

好處理它是'變種FD =新FORMDATA(myForm的)代碼;' – BarryBones41

+0

我的意思是處理服務器端代碼HTTP請求您使用的XMLHttpRequest和'fd'可能創造。 – Quentin

+0

這是一個嵌入式系統,我不能改變服務器代碼。我只會使用隱藏的輸入。 – BarryBones41

0

試試這個:

var checkbox = $("#myForm").find("input[type=checkbox]"); 
$.each(checkbox, function(key, val){ 
    if(this.is(":checked")){ 
    formData.append($(val).attr('name'), true); 
}else{ 
    formData.append($(val).attr('name'), false); 
} 
});