Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/402.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 如何验证是否选择了selecthtml元素选项_Javascript - Fatal编程技术网

Javascript 如何验证是否选择了selecthtml元素选项

Javascript 如何验证是否选择了selecthtml元素选项,javascript,Javascript,我有一个javascript函数,可以从select html元素中删除所选选项 function fn_delete() { var result = confirm("Are you sure?"); if (result) { var x = document.getElementById("t2"); x.remove(x.selectedIndex); var i; for(i=0; i<

我有一个javascript函数,可以从select html元素中删除所选选项

function fn_delete()
{
    var result = confirm("Are you sure?");
    if (result) 
    { 
        var x = document.getElementById("t2");
        x.remove(x.selectedIndex);
        var i;
        for(i=0; i<t2.length; i++)
        {
            if(t2.options[i].selected)
            {
                t2.remove(i);
            }
        }
   }
}

问题是,即使用户没有选择任何选项并单击“删除”,他仍然会收到“您确定吗”的确认消息。验证是否选择任何选项的条件是什么?如何实现

你的逻辑有点混乱。。调用函数。。然后询问您是否确定它已被选中

这里编辑的是

如果未选择任何选项,selectedIndex等于-1:

if (x.selectedIndex == -1) {
// please, make a selection
} 

实际上,默认情况下,如果页面重新加载等,则可以选择第一个选项。因此引入nothing或null选项,然后检查ndex是否大于零将有所帮助。您可以删除此警报。。。很明显

函数fn_delete{ var ch=document.getElementByIdt2.selectedIndex; alertch; 如果ch>0{ var结果=确认你确定吗?; 如果结果{ var x=document.getElementByIdt2; x、 removex.selectedIndex; var i; 对于i=0;i 不过,你可以通过多种方式来实现这一点。你也可以在你的按钮上有一个点击处理程序来检查是否有一个选择,就像另一个用户建议的那样。我更喜欢在事物未处于验证状态时禁用按钮来单击它们

//检查是否选择了任何选项,并根据需要启用/禁用删除按钮 功能检查已选定{ var select=document.getElementByIdt2, deleteBtn=document.getElementByIddelete, hasSelected=false; 对于变量i=0;i为什么要添加更多代码?他已经写了所有需要的东西。。。只是需要重新排序。虽然你的逻辑在我看来很完美,但你的代码不起作用!您的代码中还有其他错误。。。例如定义x。。然后调用未定义的t2。问题是,使用您的代码,我可以删除一个选项,但我根本没有收到任何确认消息。您从未输入for。。。长度未定义请看这把小提琴,这样你就能明白我在说什么。。我对这个完全陌生,所以我可以假设你是对的,但是我看不出我做错了什么。试着删除'nothing'的值。这没有发生。在使用此代码的项目中,我无法删除列表中的第一个元素。没有任何内容是占位符,您的第一个选项是占位符
if (x.selectedIndex == -1) {
// please, make a selection
}