Javascript 使用element.parentNode.removeChild(element)时无法删除表单元素
我有一个表单将提交到谷歌搜索设备,形成一个查询字符串“q” 在表单中,我有单选按钮和隐藏元素;单选按钮包含可供选择的站点选项;隐藏元素包含多个站点,允许用户选择多个站点搜索Javascript 使用element.parentNode.removeChild(element)时无法删除表单元素,javascript,element,removechild,Javascript,Element,Removechild,我有一个表单将提交到谷歌搜索设备,形成一个查询字符串“q” 在表单中,我有单选按钮和隐藏元素;单选按钮包含可供选择的站点选项;隐藏元素包含多个站点,允许用户选择多个站点搜索 <input type="radio" id="site_search" name="as_sitesearch" value="www.mycompany.com" checked>Current site<br /> <input type="radio" id="site_search"
<input type="radio" id="site_search" name="as_sitesearch" value="www.mycompany.com" checked>Current site<br />
<input type="radio" id="site_search" name="as_sitesearch" value="archive.mycompany.com">Archive site<br />
<input type="radio" id="site_search" name="as_sitesearch" value="">Both sites<br />
<input type="hidden" id="as_oqOption" name="as_oq" value="www.mycompany.com archive.mycompany.com">
但是,在提交表单时,“q”最终会获得单选和隐藏元素,而不管我单击哪个单选选项
我不知道为什么会发生这种情况,因为我遵循了DOM教程网站中关于如何在提交之前删除表单元素的指南。有什么想法吗
谢谢以下代码可能会帮助您:
(form.as_sitesearch[2].checked){
for(var k=0; k<form.as_sitesearch.length;k++){
form.as_sitesearch[k].parentNode.removeChild(form.as_sitesearch[k])
}
}
else{
var goodbyeElement = document.getElementById('as_oqOption');
goodbyeElement.parentNode.removeChild(goodbyeElement);
}
(form.as\u sitesearch[2]。已选中){
for(var k=0;k明白了!显然form.elements总是会因为分组而失败,所以不要使用它
// IF THE USER CHECKED "BOTH SITES", YOU WILL HAVE TO WIPE OUT THE VALUE OF as_sitesearch TO ALLOW FOR PASSING OF as_oq FOR GOOGLE ENGINE
if (document.getElementById('site_search3').checked) {
for (var i = 1; i <= 3; i++) {
eval('var goodbyeElement = document.getElementById("site_search' + i + '");');
goodbyeElement.parentNode.removeChild(goodbyeElement);
}
} else {
var goodbyeElement = document.getElementById('as_oqOption');
goodbyeElement.parentNode.removeChild(goodbyeElement);
}
//如果用户选中了“两个站点”,则必须删除as_sitesearch的值,以允许为GOOGLE ENGINE传递as_oq
if(document.getElementById('site_search3')。选中){
对于(var i=1;i多个元素不能共享同一个ID。谢谢,我对ID进行了请求的更改,不幸的是,相同的问题仍然存在。表单提交文件中同时存在单选元素和隐藏元素,即使其中一个或另一个应该被销毁。EDI已经编写了该代码,但它无法同时作为两个radio和隐藏元素被传递,忽略整个条件
// IF THE USER CHECKED "BOTH SITES", YOU WILL HAVE TO WIPE OUT THE VALUE OF as_sitesearch TO ALLOW FOR PASSING OF as_oq FOR GOOGLE ENGINE
if (document.getElementById('site_search3').checked) {
for (var i = 1; i <= 3; i++) {
eval('var goodbyeElement = document.getElementById("site_search' + i + '");');
goodbyeElement.parentNode.removeChild(goodbyeElement);
}
} else {
var goodbyeElement = document.getElementById('as_oqOption');
goodbyeElement.parentNode.removeChild(goodbyeElement);
}