1

jqueryを使用して有効または無効にする必要があるLinkBut​​ton(最初は無効)がありますが、使用している方法でボタンを無効にするとhref属性が削除されるように見えるため、再度有効にするとボタンが有効に見えます。しかし、それはクリック可能ではありません。

<asp:LinkButton Id="lbSave" runat="server" Text="Save" Enabled="False" ClientIDMode="Static" />

Disable:
$('#lbSave').attr('disabled', 'disabled');

Enable:
$('#lbSave').removeAttr('disabled');

LinkBut​​tons を有効/無効にする正しい方法は何ですか?

4

4 に答える 4

5

問題は、クライアントブラウザのコントロールのIDがそうではない lbSaveが、WebFormsがそれを次のようなものに壊してしまうことです。ctl00_nameofanynestedaspnetcontainercontrols_morenestedcontainernames_lbSave.

Praveenによって提案された回避策は、idでコントロールを見つけようとせず、代わりに一意のクラス名(Webフォームがマングルしない)を付けて、出来上がりの問題を解決することです。

別の方法は、asp.netを取得して、マークアップに正しいIDをプラグインすることです。

有効化:$('#<%= lbSave.ClientID %> ')。attr('disabled'、'');

無効化:$('#<%= lbSave.ClientID %> ').removeAttr('disabled');

(Asp.Net 4 WebFormsを使用している場合は、このページhttp://weblogs.asp.net/scottgu/archive/2010/03/30/cleaner-html-markup-with-asp-net-4-web-forms -client-ids-vs-2010-and-net-4-0-series.aspxは、代替のより単純なソリューションを提供します)。

しかし、Asp.Net 4で新しいプロジェクトを実行している場合は、本当にAsp.Net MVCを使用したいので、この種の問題はすべて解消されます。

于 2012-10-31T17:23:08.020 に答える
2

このリンクを試すjQuery を使用してハイパーリンクを無効にする

だからあなたは試すことができます

$('#<%= lbSave.ClientID %>').bind('クリック', false);

有効にする

$('#<%= lbSave.ClientID %>').unbind('クリック', false);

于 2012-10-31T17:16:37.127 に答える
2

以下のようなことができます:

<asp:LinkButton Id="lbSave" runat="server" Text="Save" Enabled="False" CssClass="lbSave" />

無効にする:

$(".lbSave").attr("disabled", "disabled");

有効:

$(".lbSave").removeAttr("disabled");

お役に立てれば!!

于 2012-10-31T17:13:41.403 に答える
0

ASP.NET LinkBut​​ton で Enabled=False を設定すると href 属性が削除されるため、jquery で再度有効にすることはできません。だからここに私のために働く解決策があります:

In javascript:
$(document).ready(function() {
  _href = $('#lbSave').attr('href');
  $('#lbSave').attr('disabled', 'disabled');
  $('#lbSave').removeAttr('href');
});

Disable:
$('#lbSave').attr('disabled', 'disabled');
$('#lbSave').removeAttr('href');

Enable:
$('#lbSave').removeAttr('disabled');
$('#lbSave').attr('href', _href);
于 2012-10-31T17:54:23.317 に答える