2017-01-10 168 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:我刚更新了我的答案......请添加脚本在你的代码结尾并尝试.... –