2012-10-17 176 views
0

我有一個複選框,在我的網頁按一下按鈕在JavaScript

<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。

回答

-1

沒有測試,但試試這個:

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

不是OP要求的 – musefan

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> 
0

試試這個,如果你使用的是母版頁

document.getElementById('<%= btnclick.ClientID %>').click(); 
0

可以改變輸出的ID如果使用.NET 4+

<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> 

點擊事件現在應該觸發。

該複選框具有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> 
+0

onclick仍然是一個服務器例程,而不是客戶端事件。使用onclick不會從複選框中觸發calc。 –

+0

thedixon - 我進一步澄清了 – NiceYellowEgg

+0

看起來很像我現在的答案...;) –

0

您可以使用複選框的OnCheckedChanged事件,然後檢查。