Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/14.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 从列表框(客户端)获取所有选定值_Javascript_Vb.net_Listbox - Fatal编程技术网

Javascript 从列表框(客户端)获取所有选定值

Javascript 从列表框(客户端)获取所有选定值,javascript,vb.net,listbox,Javascript,Vb.net,Listbox,我正在尝试用JavaScript为我的vb.net页面实现一个自定义验证器。此验证器应检查multichoice列表框中是否没有任何选定值,如果有,则显示错误弹出窗口 问题是,我想在客户端执行此操作,但在我的“validateFunction”函数中,我只获取最后一个选中(或未选中,如果已选中)项。我知道如何在代码隐藏中完成,但我想在客户端完成 aspx代码: JavaScript代码: 函数validateFunction(源、参数){ var options=document.getEl

我正在尝试用JavaScript为我的vb.net页面实现一个自定义验证器。此验证器应检查multichoice列表框中是否没有任何选定值,如果有,则显示错误弹出窗口

问题是,我想在客户端执行此操作,但在我的“validateFunction”函数中,我只获取最后一个选中(或未选中,如果已选中)项。我知道如何在代码隐藏中完成,但我想在客户端完成

aspx代码:


JavaScript代码:

函数validateFunction(源、参数){
var options=document.getElementById(source.controltovalidate).options;
对于(变量i=0;i
正如我所说的,由于最后一个(未)选择的项目将是“选项”数组中唯一选择的项目,验证函数将始终返回true

我想在另一个javascript函数中填充另一个数组作为“true selected array”,并在每次函数启动时将其值与selected选项进行比较。。但我认为应该有更好的办法

所以。。。是否有一种直接的方法可以从javascript中的multichoice列表框中获取所有选定项

let a1 = [
{
    Selected:false,
},
{
    Selected:false
},
{
    Selected:false
}];
if(a1.部分(i=>i.选定)) console.log(true); 其他的 console.log(false)


也许你想要什么,你的问题有点不清楚,你的功能似乎正常,但我在这里要回答的是你问题的最后一部分,所以。。。是否有一种直接的方法可以从javascript中的multichoice列表框中获取所有选定项

试试这个js函数

<script type="text/javascript">
        function validateFunction() {
            var options = document.getElementById('<% = this.lbEdit.ClientID %>').options;
            var selectedItems;
            for (var i = 0; i < options.length; i++) {
                if (options[i].selected == true) {
                    if (selectedItems) {
                        selectedItems = selectedItems + ";" + options[i].value;
                    }
                    else {
                        selectedItems = options[i].value;
                    }
                }
            }
            if (selectedItems) {
                alert(selectedItems);
                return true;
            }
            else {
                alert("No item was selected");
                return false;
            }
        }
    </script>

函数validateFunction(){
var options=document.getElementById(“”).options;
var selectedItems;
对于(变量i=0;i
这是aspx代码,我删除了验证器

 <asp:ListBox ID="lbEdit" runat="server" SelectionMode="Multiple" >
 </asp:ListBox>
    <asp:Button ID="test" runat="server" Text="send"  OnClientClick="return validateFunction();"/>

很抱歉耽搁了,我没有时间,因为我们有一个新的紧急项目要来。。。还在上面,该死的。。。对于响应,从外观上看,您的代码似乎与我的代码相同,因此
options[i]。selected==true
只会在我的代码中触发一次,最后单击的选项。。。我的开发人员工具从未设置过多个“selected=true”。也许我用错误的方式声明了列表框?我希望周一还有一些时间做进一步的回顾,也许会再次提出这个问题。在此期间,我不能给你奖金,至少要为你的努力投一票,谢谢!!!事实上,我注意到奖励你与否是一样的,正如我读到的,所以对你的赏金是你应得的。无论如何,我的解决方法是创建一个JavaScript数组,每次启动listbox.selected时,切换该索引的状态(true-false)。。。我想会带着消息回来;)
<script type="text/javascript">
        function validateFunction() {
            var options = document.getElementById('<% = this.lbEdit.ClientID %>').options;
            var selectedItems;
            for (var i = 0; i < options.length; i++) {
                if (options[i].selected == true) {
                    if (selectedItems) {
                        selectedItems = selectedItems + ";" + options[i].value;
                    }
                    else {
                        selectedItems = options[i].value;
                    }
                }
            }
            if (selectedItems) {
                alert(selectedItems);
                return true;
            }
            else {
                alert("No item was selected");
                return false;
            }
        }
    </script>
 <asp:ListBox ID="lbEdit" runat="server" SelectionMode="Multiple" >
 </asp:ListBox>
    <asp:Button ID="test" runat="server" Text="send"  OnClientClick="return validateFunction();"/>