如何将 onchange 事件附加到 CheckBoxList?缺少输入属性?

Posted

技术标签:

【中文标题】如何将 onchange 事件附加到 CheckBoxList?缺少输入属性?【英文标题】:How to attach onchange event to CheckBoxList? Missing InputAttributes? 【发布时间】:2010-11-25 20:26:15 【问题描述】:

使用以下代码为 CheckBoxList 设置 onchange 事件不起作用。

chkListUserGroup.Attributes.Add("onchange", "document.forms[0].isRecordModified.value='true';");

如何为 CheckBoxList 设置 onchange 事件?

【问题讨论】:

您是否遇到任何错误?渲染出来的 html 是什么样子的? 是的,只要你给出,我们就找不到准确的答案。 onchange 事件被附加到标签元素而不是输入标签本身。 【参考方案1】:

使用onclick事件,

 protected void Page_Load(object sender, EventArgs e)
    
        if (!IsPostBack)
        
            CheckBoxList1.Items.Add("A");
            CheckBoxList1.Items.Add("B");
            CheckBoxList1.Items.Add("C");
            CheckBoxList1.Items.Add("D");

            foreach (ListItem item in CheckBoxList1.Items)
            
                item.Attributes.Add("onclick", "document.forms[0].isRecordModified.value=document.activeElement.checked");    
            
        
    

【讨论】:

这是我设法捕捉复选框列表事件的唯一方法【参考方案2】:

使用此代码处理vb.net中复选框列表中的点击事件

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        If Not IsPostBack Then
            Dim li As ListItem
            For Each li In CheckboxList1.Items
                li.Attributes.Add("onclick", "alert('hello')")
            Next
        End If

【讨论】:

【参考方案3】:

实际上它应该可以工作。因为我在我的代码中写了一些东西并且它起作用了。看来您需要通过简单地更改它来检查您的 javascript 代码 alert('hello');

 foreach (ListItem item in CheckBoxList1.Items)
 
    item.Attributes.Add("onchange", "alert('hello')");
 

这是我的简单代码,它正在工作。

【讨论】:

@Aaron:我刚刚删除了我的答案,因为你是绝对正确的。不知道 onchange 事件会自动传播到子元素。 如何为 CheckBoxList 中的项目设置它。 onchange 事件附加到标签元素而不是输入标签本身。 同样的问题,它影响标签而不是输入元素。这就是它的呈现方式...

以上是关于如何将 onchange 事件附加到 CheckBoxList?缺少输入属性?的主要内容,如果未能解决你的问题,请参考以下文章

如何在斑马日期选择器上调用我的 onchange 事件?

iText onchange事件未触发

如何将 DataGridViewComboBoxColumn 绑定到 OnChange 事件(C#)

如何确保使用javascript更新select也会触发onchange事件侦听器?

onchange事件如何将日期值传递给javascript

触发更改事件不触发RiotJs附加处理程序