我有一个将提交给谷歌搜索设备的表单,形成一个查询字符串“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">
这是我编写的 Javascript,它将专门删除 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 (form.elements['as_sitesearch'][0].value.length == 0) {
var goodbyeElement = document.getElementById('site_search');
goodbyeElement.parentNode.removeChild(goodbyeElement);
} else {
var goodbyeElement = document.getElementById('as_oqOption');
goodbyeElement.parentNode.removeChild(goodbyeElement);
}
但是,当提交表单时,无论我单击哪个单选选项,“q”都会同时获得单选和隐藏元素。
不知道为什么会发生这种情况,因为我遵循了 DOM 教程网站中的指南,我已经阅读了如何在提交之前删除表单元素。有任何想法吗?
谢谢