【问题标题】:How to get value of selected checkboxlist items using javascript in asp.net如何在asp.net中使用javascript获取选定复选框列表项的值
【发布时间】:2014-02-03 16:35:55
【问题描述】:

我正在开发一个 asp.net 项目,其中我有一个复选框列表,我使用它绑定了

DataTable dt = new Process_Hotels().SelectAllFacilty();           
if (dt.Rows.Count > 0)                                            
{                                                                 
    cblHotelFacility.DataSource = dt;                             
    cblHotelFacility.DataTextField = "Facility";                  
    cblHotelFacility.DataValueField = "ID";                       
    cblHotelFacility.DataBind();                                  

    foreach (ListItem li in cblHotelFacility.Items)               
    {                                                             
        li.Attributes.Add("JSvalue", li.Value);                   
    }                                                             
}

现在我想在单击按钮时使用 javascript 获取复选框列表的选定值 ID。为此,我在单击按钮时有以下 javascript 代码:

<script type="text/javascript">                                                                                   

    function test() {                                                                                             
        var checkList1 = document.getElementById('<%= cblHotelFacility.ClientID %>');                             
        var checkBoxList1 = checkList1.getElementsByTagName("input");                                             
        var checkBoxSelectedItems1 = new Array();                                                                 

        for (var i = 0; i < checkBoxList1.length; i++) {                                                          
            if (checkBoxList1[i].checked) {                                                                       
                checkBoxSelectedItems1.push(checkBoxList1[i].value);                                              
                //alert('checked:' + checkBoxSelectedItems1.push(checkBoxList1[i].getAttribute("JSvalue")).value);
                alert('checked - : ' + checkBoxList1[i].value)                                                    
            }                                                                                                     
        }                                                                                                         
    }                                                                                                             
</script>

但是点击按钮选中的复选框列表显示为 0。我想获取所选复选框列表项的 ID。请帮助。

【问题讨论】:

  • checkList1 中有多少元素。我的东西只会是一个
  • 可能有很多元素 checkList1,如果我选择了复选框列表的多个项目,那么它会显示多次警报消息“on”而不是 ID

标签: c# javascript asp.net


【解决方案1】:

试试这个:

<script type = "text/javascript">

function GetCheckBoxListValues(chkBoxID)
{
    var chkBox = document.getElementById('<%= cblHotelFacility.ClientID %>');
    var options = chkBox.getElementsByTagName('input');
    var listOfSpans = chkBox.getElementsByTagName('span');
    for (var i = 0; i < options.length; i++)
    {
        if(options[i].checked)
        {
            alert(listOfSpans[i].attributes["JSvalue"].value);
        }
    }
}


</script> 

【讨论】:

  • 它正在返回选定的项目文本,但我想要它的值
【解决方案2】:

尝试调试

for (var i = 0; i < checkBoxList1.length; i++) {
console.log(checkBoxList1[i])
            if (checkBoxList1[i].checked) {
                checkBoxSelectedItems1.push(checkBoxList1[i].value);
                //alert('checked:' + checkBoxSelectedItems1.push(checkBoxList1[i].getAttribute("JSvalue")).value);
                alert('checked - : ' + checkBoxList1[i].value)
            }
        }

查看 id console.log() 通过在控制台窗口上按 F12 为您提供有关该对象的任何信息。为 Firefox 安装 firebug 插件。

【讨论】:

    【解决方案3】:

    希望这段代码对您有所帮助:

    function CheckBoxCheckOrNot(jobskill) {
        var c = document.getElementById(jobskill).getElementsByTagName('input');
        for (var i = 0; i < c.length; i++) {
            if (c[i].type == 'checkbox') {
                if (c[i].checked) {
                    alert('checkbox checked');
                }
                else {
                    alert('checkbox unchecked');
                }
            }
        }
    }
    

    注意:jobskill 是一个包含所有复选框的容器 ID。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-09-27
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多