asp.net - JavaScript 中的 Webform 复选框值

标签 asp.net javascript

我的 asp.net Web 表单上有一个复选框列表控件,我从数组列表中动态填充该控件。在 javascript 中,我希望能够迭代列表中的值,以及是否选择了特定值来显示页面上的其他控件。

我的问题是复选框列表中的所有值都显示为“打开”,而不是设置的实际值。如何获取每个复选框的实际值?

谢谢。

Javascript:

checkBoxs=document.getElementById(CheckboxList);
    var options=checkBoxs.getElementsByTagName('input');       

    for(var i=0;i<options.length;i++)
    {            
        if(options[i].value=="Other")
        {
            if(options[i].checked)
            {
                var  otherPub=document.getElementById('<%=alsOtherPublicity.ClientID%>');
                otherPub.style.display='block';

            }                
        } 

    }

编辑:我遇到问题的行是 if(options[i].value=="Other") 因为 firebug 中显示的值被指定为“on”而不是比我设置的值。

编辑 2: 生成的 html 如下所示:

<span id="ctl00_ContentPlaceHolderMetadata_Allocation1_alfPublicity" class="ucFieldCBL" onChange="alValidate();" onClick="alPublicity('ctl00_ContentPlaceHolderMetadata_Allocation1_alfPublicity');">
  <input id="ctl00_ContentPlaceHolderMetadata_Allocation1_alfPublicity_0" type="checkbox" name="ctl00$ContentPlaceHolderMetadata$Allocation1$alfPublicity$0"/>
  <label for="ctl00_ContentPlaceHolderMetadata_Allocation1_alfPublicity_0">Text1</label>
  <input id="ctl00_ContentPlaceHolderMetadata_Allocation1_alfPublicity_1" type="checkbox" name="ctl00$ContentPlaceHolderMetadata$Allocation1$alfPublicity$1"/>
  <label for="ctl00_ContentPlaceHolderMetadata_Allocation1_alfPublicity_1">Text2</label>
  <input id="ctl00_ContentPlaceHolderMetadata_Allocation1_alfPublicity_2" type="checkbox" name="ctl00$ContentPlaceHolderMetadata$Allocation1$alfPublicity$2"/>
  <label for="ctl00_ContentPlaceHolderMetadata_Allocation1_alfPublicity_2">Text3</label>
  <input id="ctl00_ContentPlaceHolderMetadata_Allocation1_alfPublicity_3" type="checkbox" name="ctl00$ContentPlaceHolderMetadata$Allocation1$alfPublicity$3"/>
  <label for="ctl00_ContentPlaceHolderMetadata_Allocation1_alfPublicity_3">Text4</label>
  <input id="ctl00_ContentPlaceHolderMetadata_Allocation1_alfPublicity_4" type="checkbox" name="ctl00$ContentPlaceHolderMetadata$Allocation1$alfPublicity$4"/>
  <label for="ctl00_ContentPlaceHolderMetadata_Allocation1_alfPublicity_4">Text5</label>
</span>

看起来问题似乎是由于 asp.net 复选框控件上缺少可用的值属性所致,如Dave Parslow所述。 。我目前正在尝试一种解决方法,通过调用函数服务器端来返回复选框的文本并使用它。

最佳答案

options[i].checked 将返回 true 或 false。 options[i].value 将为您提供复选框标记的 value 属性。

关于asp.net - JavaScript 中的 Webform 复选框值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/208151/

相关文章:

javascript - 在开始停止按钮jquery之间切换

php - 打印从 MySQL 查询检索到的值时出现问题

javascript - 如何在 JavaScript 中给定日期添加三天?

javascript - 在测试中调试输出

javascript - 自动登录网站,使用 ASP.NET

javascript - 将 Mottie 虚拟键盘附加到 ajaxcontroltoolkit 组合框

javascript - 如何在 asp.net 中从 c# 运行 javascript

javascript - 使用 asp.net 复选框 oncheckchanged 事件隐藏一个 div

javascript - 异步 Javascript 回调不触发 RaiseCallBackEvent 函数

javascript - 在哪里对集合进行排序会更快 - 客户端还是服务器端?