2016-08-15 51 views
1

我的页面上的复选框有一个onclick事件来启用一个按钮,当它被选中时,并且当它没有被选中时禁用它。有时我需要完全禁用按钮,但我不希望它被隐藏。在代码后面删除onClick属性

复选框看起来像这样:

<asp:CheckBox ID="cb_start" runat="server" onClick="cb_start_click()"/> 
<script> 
    var cb = document.getElementById("ContentPlaceHolder1_cb_start"); 
    var btn = document.getElementById("ContentPlaceHolder1_btn_start"); 
    function cb_start_click(){ 
     btn.disabled = !cb.checked; 
    } 
</script> 

在后面的代码,我想这一点,但没有奏效:

cb_start.Attributes.Remove("onClick"); 
if (somecase) cb_start.Attributes.Add("onClick", "cb_start_click()"); 

回答

0

您不必删除监听器。您可以将if (somecase)放置在cb_start_click()回拨函数中,以避免启用该按钮。

+0

我不认为我能够得到JS内必需的信息,因为它来自一个SQL数据库。我创建了一个解决方法,通过使按钮不可见并制作另一个按钮,在同一位置显示相同的外观,但它是静态禁用的。不是一个很好的解决方案,但它的工作。 – lenny