JavaScript:显示是否有任何选项已赋值

JavaScript:显示是否有任何选项已赋值,javascript,Javascript,我是这个论坛的新手。我试着检查一些以前的解决方案,但它们不太合适。我有条件下拉框,可以按预期工作。但是,我只希望在用户从一个辅助(子)菜单中选择后显示SHOW ME TO GO按钮。他们选择哪个选项并不重要,只要它不是框中显示的默认值 我试着设置它,使所有的二级菜单都在一个数组中,并在函数中进行检查。基本上,如果选择了任何选项并指定了值,则按钮应显示 这是我的密码。我做错了什么?我只是在学习JavaScript,所以请容忍我 我是一个。。。 投机取巧 现场卸载 LTL 联邦快递地面/快递 访客

我是这个论坛的新手。我试着检查一些以前的解决方案,但它们不太合适。我有条件下拉框,可以按预期工作。但是,我只希望在用户从一个辅助(子)菜单中选择后显示SHOW ME TO GO按钮。他们选择哪个选项并不重要,只要它不是框中显示的默认值

我试着设置它,使所有的二级菜单都在一个数组中,并在函数中进行检查。基本上,如果选择了任何选项并指定了值,则按钮应显示

这是我的密码。我做错了什么?我只是在学习JavaScript,所以请容忍我


我是一个。。。
投机取巧
现场卸载
LTL
联邦快递地面/快递
访客


描述你的交易。。。 输入-输出 装入-清空 空进-空出 空进-空出 Bobtail输入-输出 小型拖车/集装箱 容器 你将在哪里卸货? 仓库1/100层码头 仓库2/200层码头 仓库3/300层码头 仓库4/400层码头 我该去哪里? 船坞门327 描述你的交易。。。 返回装入-装入 空进-空出 你此行的目的是什么? 交付维修 食堂/自动售货机 垃圾收集 参观运输办事处

告诉我去哪里
函数检查(){
var dropdown=document.getElementById(“TransactionType”);
var current_value=dropdown.options[dropdown.selectedIndex].value;
如果(当前_值=“DH”){
document.getElementById(“DHOps”).style.display=“block”;
document.getElementById(“LUOps”).style.display=“无”;
document.getElementById(“LTLOps”).style.display=“无”;
document.getElementById(“FEDEXOps”).style.display=“无”;
document.getElementById(“VISITOROps”).style.display=“无”;
}
如果(当前_值==“活动”){
document.getElementById(“LUOps”).style.display=“block”;
document.getElementById(“DHOps”).style.display=“无”;
document.getElementById(“LTLOps”).style.display=“无”;
document.getElementById(“FEDEXOps”).style.display=“无”;
document.getElementById(“VISITOROps”).style.display=“无”;
}
如果(当前值=“LTL”){
document.getElementById(“LTLOps”).style.display=“block”;
document.getElementById(“DHOps”).style.display=“无”;
document.getElementById(“LUOps”).style.display=“无”;
document.getElementById(“FEDEXOps”).style.display=“无”;
document.getElementById(“VISITOROps”).style.display=“无”;
}
如果(当前_值==“联邦快递”){
document.getElementById(“FEDEXOps”).style.display=“block”;
document.getElementById(“DHOps”).style.display=“无”;
document.getElementById(“LUOps”).style.display=“无”;
document.getElementById(“LTLOps”).style.display=“无”;
document.getElementById(“VISITOROps”).style.display=“无”;
}
如果(当前_值==“访客”){
document.getElementById(“VISITOROps”).style.display=“block”;
document.getElementById(“DHOps”).style.display=“无”;
document.getElementById(“LUOps”).style.display=“无”;
document.getElementById(“LTLOps”).style.display=“无”;
document.getElementById(“FEDEXOps”).style.display=“无”;
}
}
函数showbtn(){
var childbox=[document.getElementById(“DHOps”)、document.getElementById(“LUOps”)、document.getElementById(“LTLOps”)、document.getElementById(“FEDEXOps”)、document.getElementById(“VISITOROps”);
if(document.getElementsById(childbox.onchange=true){
document.getElementById(“提交”).style.display=“块”;
}
}

我在您的代码中看到了几个问题

showbtn()
函数中,您可以使用
getElementsById
函数,但据我所知,这并不存在。您是否尝试改为执行
getElementsByName

无论哪种方式,都会返回一个必须迭代的
NodeList
,我看到您正在尝试检查
onchange
,它本身是一个可分配的属性。那不会像预期的那样起作用

我觉得您可以通过检查
标记中是否至少有一个选择的值不是
”来简化逻辑。 下面是一个简单的建议-如果您想简化,可以通过创建更容易选择的元素(通过名称或类名,这将与
getElementsBy
一起使用)来简化

//选定ID的数组。
var arrayOfSelects=['DHOps'、'LUOps'、'LTLOps'、'FEDEXOps'];
//迭代每一个。
for(让我们选择阵列选项中的一个){
var e=document.getElementById(选择);
//检查所选值是否不是null、未定义、0或空。
如果(如价值){
document.getElementById(“提交”).style.display=“块”;
打破
}
}

您的代码几乎正常工作。顶部的showbtn()函数中有一个错误正在停止javascript运行,因此无法访问document.getElementById(“submit”).style.display=“block”行。我已经简化了这个功能,现在它可以按照您的意愿显示按钮(参见下面的fiddle work示例链接)。代码更改仅在Javascript showbtn()函数中进行,如下所示:

function showbtn (){
         document.getElementById("submit").style.display = "block"; 
}

很高兴知道我离这里不远。如果我想在父框更改时隐藏按钮,该怎么办?我只想让按钮显示是否选择了其中一个具有指定值的选项。现在,如果我选择一个选项,即使我从父框中更改选项,按钮仍会保留在那里。在我办公室外的手机上,快速浏览一下,建议将document.getElementById(“submit”).style.display=“none”放在复选框中()