0

disabledおそらく経験不足のため、aspボタンとJavaScriptの属性に奇妙な問題がありますが、とにかく...

この質問/回答disabledからわかるように、属性を設定すると要素が無効になります。そのように設定しない限り;element.disabled = false;

だから、それが私のコードで行うことです。

<script type="text/javascript">
    function CheckOne(inChkBox) {
        ... irrelevant code goes here ...
        var rejectButton = document.getElementById('btnReject');
        if (inChkBox.checked) {
            rejectButton.disabled = false;
            rejectButton.className = 'Enabled';
        } else {
            rejectButton.disabled = true;
            rejectButton.className = 'Disabled';
        }
    }
</script>
<input type='checkbox' name='chkRejectLineItem' onchange='CheckOne(this);' runat="server"/>

これは、私のボタンがまだ無効になっているという事実を除けば、トリガーされて正常に動作するようです (少なくとも cssclass は変更されます...)。

<asp:Button ID="btnProjectTimeReject" runat="server" Text="Reject Selected" OnClientClick="LineItemRejectReason();"  OnClick="btnProjectTimeReject_Click" Enabled="False" CssClass="Disabled"/>

が呼び出されることはないため、これを知ってOnClientClickいます(何らかの理由で、サーバー側のコードがまだ呼び出されます??)。ボタンを に設定するとEnabled="True"、すべてが期待どおりに機能します。

私がEnabled="True"最初に使用していて、代わりにrejectButton.removeAttribute('disabled')JavaScriptを有効/無効にする必要があるからですか?

4

1 に答える 1

0

多くのコンソールデバッグと同じことをさまざまな方法でグーグル検索した後、次の解決策/回答が見つかりました。

var rejectButton = document.getElementById('btnPLReject');
if (inChkBox.checked) {
    rejectButton.disabled = false;
    rejectButton.className = 'Enabled';
    $('#btnPLReject').bind("click", function() { LeaveRejectReason(); });
} else {
    rejectButton.disabled = true;
    rejectButton.className = 'Disabled';
}

これにより、ボタンは JavaScript/クライアント側コードをトリガーし、次にサーバー側コードをトリガーします...以前はサーバー側コードのみを実行していたため...

今すぐパナドールが必要です。

于 2013-06-20T07:59:39.767 に答える