4

jQueryで.netLinkBut​​tonを有効にしようとしていますが、.NET 4.0では状況が少し変更されており、attr( "disabled"、 "disabled")またはremoveAttr( "disabled")を使用するだけでは機能しません。

これがボタンです。

<asp:LinkButton ID="LinkButtonContinue" runat="server" Text="Continue" CssClass="button continue" Enabled="false"></asp:LinkButton>

これは次のようにレンダリングされます。

<a class="aspNetDisabled button continue" id="ContentPlaceHolder1_LinkButtonContinue">Continue</a>

新しく追加されたaspNetDisabledのクラスに注意してください。

だから私はこれを試しました:

jQuery(".continue").removeAttr("disabled").removeClass("aspNetDisabled");

この:

jQuery(".continue").removeClass("aspNetDisabled");

削除する無効な属性がないため、どちらも機能しません。JSを使用して無効にすると思いますか?

このクラスでボタンを有効にするにはどうすればよいですか?

何か案は?

どうもありがとう

クリス

4

4 に答える 4

2

問題は、生成されたサーバーサイドのようなボタンがある場合、ページにJavaScriptのナンセンスが追加されることだと思います。例:

<script type="text/javascript">
//<![CDATA[
var theForm = document.forms['aspnetForm'];
if (!theForm) {
    theForm = document.aspnetForm;
}
function __doPostBack(eventTarget, eventArgument) {
    if (!theForm.onsubmit || (theForm.onsubmit() != false)) {
        theForm.__EVENTTARGET.value = eventTarget;
        theForm.__EVENTARGUMENT.value = eventArgument;
        theForm.submit();
    }
}
//]]>
</script>

javascript:__doPostBack('id','')そして、ボタンは、hrefのようなもの になります

このhref値をサーバーサイドで手動で定義してみてください(または、ページの読み込み時にjavascriptを使用して動的に定義すると、生成される恐ろしいIDの方が簡単な場合があります)。

あなたのインスタンスでは、hrefがないため、アンカーが無効になっていない場合でも何も起こりません。

編集: ボタンのサーバーサイドを無効にすることを避け、ページが読み込まれたときにjavascriptで無効にする方が簡単ではないでしょうか?

于 2012-10-11T08:43:44.323 に答える
1

多分それはあなたのために働く:

$('.continue').disabled = false;

使用できる別の方法は次のとおりです。

$('.continue').attr("disabled", "");
于 2012-10-11T08:32:54.773 に答える
0

使用するだけ:

$('.continue').removeClass("aspNetDisabled");

うまくいくはずだと思う

于 2012-10-11T08:13:07.020 に答える
0

このようなことを試してください。

<head id="Head1" runat="server">
    <title></title>

    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.min.js" type="text/javascript"></script>

    <style type="text/css">
        .disabled-link
        {
            color: Gray;
            cursor: default;
        }
    </style>

    <script type="text/javascript">

        $(function() {
            var linkButton1 = $('.continue'); // $('#<%= LinkButton1.ClientID %>')
            var href = linkButton1.attr('href');
            $('#<%= EnableButton.ClientID %>').click(function(e) {
                e.preventDefault();
                linkButton1.attr('href', linkButton1.attr('myCustomAttr')).removeClass('disabled-link');
            });

            $('#<%= DisableButton.ClientID %>').click(function(e) {
                e.preventDefault();
                linkButton1.attr('href', '#').attr('myCustomAttr', href).addClass('disabled-link');

            });
        });

    </script>

</head>
<body>
    <form id="form1" runat="server">
    <asp:LinkButton ID="LinkButton1" runat="server"  CssClass="button continue" PostBackUrl="test.aspx">LinkButton</asp:LinkButton>
    <br />
    <asp:Button ID="DisableButton" runat="server" Text="Disable" />
    <asp:Button ID="EnableButton" runat="server" Text="Enable" />
    </form>
</body>
于 2012-10-11T08:35:29.093 に答える