0

我的页面中有一个复选框

 <asp:CheckBox onclick="calc();" ID="chkfilteritem" runat="server" Text="Yes" />

和一个按钮

 <asp:Button ID="btnclick" runat="server" Text="." onclick="btnclick_Click" />

我也有一个 javascript

 <script type="text/javascript">
 function calc() {
    document.getElementById('<%=btnclick %>').click();
   }
 </script>

我需要的是,当我选中或取消选中复选框时,我需要使用 javascript 在按钮上触发点击事件。但它不适用于我当前的 javascript。

4

5 回答 5

1

如果您使用的是 jQuery,请执行以下操作:

<asp:CheckBox CssClass="checkFilter" ID="chkfilteritem" runat="server" Text="Yes" />

<asp:Button CssClass="buttonClick" ID="btnclick" runat="server" Text="." onclick="btnclick_Click" />

<script type="text/javascript">
 $('.checkFilter').on('change', function() {
     if(this.checked) {
         $('.buttonClick').click();
     }
 }
</script>

我会说你可以使用ClientIDMode="Static",但我不确定你是否在可重复使用的控件中使用你的代码,这会使事情变得混乱。

您也可以沿着这条路线走(可读性要差得多,但它会起作用):

<script type="text/javascript">
 $('#<%=chkfilteritem.ClientID %>').on('change', function() {
     if(this.checked) {
         $('#<%=btnclick.ClientID %>').click();
     }
 }
</script>
于 2012-10-17T09:35:25.663 回答
0

如果您使用母版页,请尝试此操作

 document.getElementById('<%= btnclick.ClientID %>').click();
于 2012-10-17T09:36:54.503 回答
0

如果使用 .NET 4+,您可以更改 ID 的输出

<asp:CheckBox onclick="calc();" ID="chkfilteritem" runat="server" Text="Yes" />

<asp:Button ID="btnclick" runat="server" Text="." OnClick="btnclick_Click" ClientIDMode="Static" />

<script type="text/javascript">
  function calc() {
    document.getElementById('<%=btnclick.ClientID %>').click();
  }
</script>

click 事件现在应该触发。

复选框具有 HTML onclick 属性,而按钮具有 .NET OnClick 事件。

另一种方法是从复选框中删除 HTML onlclick,将 ClientIDMode="Static" 添加到复选框并将脚本更改为如下。

<script type="text/javascript">
  $(document).ready(function() {

    $("#chkfilteritem").click(function() {
      calc();
    });

  });

  function calc() {
    document.getElementById('<%=btnclick.ClientID %>').click();
  }
</script>
于 2012-10-17T09:37:51.773 回答
0

您可以使用复选框的 OnCheckedChanged 事件然后检查。

于 2012-10-17T10:26:19.943 回答
-1

未测试,但试试这个:

<asp:CheckBox onclick="javascript:calc();" ID="chkfilteritem" runat="server" Text="Yes" />
于 2012-10-17T09:35:05.127 回答