jQueryを使用して、ユーザーが入力した文字数と残りの数のテキストボックスの上にカウンタを表示しています。これは、テキストボックスの上のspan
の.text()
を更新することによって行います。jQuery document.readyモーダルポップアップを再度開くと起動しますか?
したがって、$(document).ready
では、最初にテキストボックスの最大長にスパンを設定してから、onkeyupが更新されます。
しかし、テキストボックスがajaxコントロールライブラリのASP.NET ModalPopupの中にある場合、ModalPopupを閉じてから再び開くと、$(document).ready
は再発するように見えます
(私の例では、AutoPostBack = "true"のModalPopup内にDropDownListがあり、ポストバック後には.Show()
の後に残りの文字数は更新されませんメソッドがポップアップエクステンダーで呼び出されて表示されるようにします)
私は同様のことを見つけたとき、私は.live
イベントはjQueryで、これは私がkeyupハンドラのために行ったものです。 span
の初期設定の問題を解決するための類似の方法はありますか?
ASP.NETマークアップ:
<asp:Content ID="Content2" ContentPlaceHolderID="cMain" Runat="Server">
<p>
Enter some text (<span id="countRemain"></span> characters remaining) <br />
<asp:TextBox runat="server" id="txtCounterTest" MaxLength="100" CssClass="input mediumField CountMe" />
</p>
</asp:Content>
と関連するjQueryの:
$(document).ready(function() {
$(".CountMe").each(function() {
var txtBoxContent = ($(this).val());
var txtBoxMaxLength = ($(this).attr("maxlength"));
var length = (txtBoxMaxLength - txtBoxContent.length) + '/' + txtBoxMaxLength;
//alert(length);
$(this).parent().find("#countRemain").text(length);
});
$(".CountMe").live("keyup", function (event) {
var txtBoxContent = ($(this).val());
var txtBoxMaxLength = ($(this).attr("maxlength"));
var length = (txtBoxMaxLength - txtBoxContent.length) + '/' + txtBoxMaxLength;
//alert(length);
$(this).parent().find("#countRemain").text(length);
});
});
ちょうど情報のために: 'ライブ'はjQuery 1.7以降で非推奨です。あなたは 'on'を使うことができます:http://api.jquery.com/live/ –
@ErikDekkerありがとう。 – bgs264