2017-01-10 127 views
0

我有一個表格有一個複選框,它有一個隱藏的元素,因此如果用戶離開選擇它與它的表單項POST請求將發送:「商品名稱」 =「」(空白)消除隱藏DOM元素的JavaScript

但如果複選框被選中,它會發送表項:「商品名稱」 =「是」

<input id="fieldX" name="Item Name" type="checkbox" value="Yes" class="" > 
<input id="fieldHidden" name="Item Name" type="hidden" value="" class="" > 

我用JS「禁用」隱藏的DOM元素,如果它是空白

if(document.getElementById('fieldX').checked) { 
document.getElementById('fieldHidden').disabled = true; }; 

每個事情工作正常時,複選框留空。

但是,當我使用Wireshark分析時,選中該複選框則在後請求發送兩個輸入後分組。

任何想法如何,我可以使用JavaScript來刪除發佈請求隱藏的DOM元素,如果複選框被選中?

謝謝

回答

0

禁用隱藏輸入時複選框被選中,並啓用未選中時。爲了處理這個,使用一個改變事件句柄

document.getElementById('fieldX').addEventListener('change', function() { 
    document.getElementById('fieldHidden').disabled = this.checked; 
}); 
+0

對不起,你是說輸入不能有相同的名稱?如果我錯了,我很抱歉,我對JS很新。原因是另一方面的表單處理程序需要能夠將該特定字段設置爲空或是(因此爲什麼它們具有相同的名稱) – SpaceTime

+0

@SpaceTime:我剛更新了我的答案......請添加腳本在你的代碼結尾並嘗試.... –