Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/472.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用element.parentNode.removeChild(element)时无法删除表单元素_Javascript_Element_Removechild - Fatal编程技术网

Javascript 使用element.parentNode.removeChild(element)时无法删除表单元素

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"

我有一个表单将提交到谷歌搜索设备,形成一个查询字符串“q”

在表单中,我有单选按钮和隐藏元素;单选按钮包含可供选择的站点选项;隐藏元素包含多个站点,允许用户选择多个站点搜索

<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);
}