この jQuery コードでは、クリックしたときにコントロール内のテキストを選択しようとしています。
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
<script src="Scripts/jquery-1.4.1.js" type="text/javascript"></script>
<script type="text/javascript">
jQuery(document).ready(
function () {
jQuery("input[type='text']").click(function () {
this.select();
});
});
</script>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:TextBox Text="Text 1" ID="txt1" ClientIDMode="Static" runat="server" />
<asp:Button Text="Submit" ID="btn1" OnClick="btn1_Click" runat="server" />
<asp:TextBox Text="Text 2" ID="txt2" ClientIDMode="Static" Visible="false" runat="server" />
</div>
</form>
</body>
</html>
コードビハインド:
protected void btn1_Click(object sender, EventArgs e)
{
txt2.Visible = true;
}
問題は、ページのコンテンツを UpdatePanel 内に配置すると、jQuery が txt1 で初めて動作することです。ボタンをクリックしても、どのテキストボックスでも機能しません。
<asp:UpdatePanel runat="server">
<ContentTemplate>
<asp:TextBox Text="Text 1" ID="txt1" ClientIDMode="Static" runat="server" />
<asp:Button Text="Submit" ID="btn1" OnClick="btn1_Click" runat="server" />
<asp:TextBox Text="Text 2" ID="txt2" ClientIDMode="Static" Visible="false" runat="server" />
</ContentTemplate>
</asp:UpdatePanel>
Chrome コンソールを使用してデバッグしているときに、jQuery が定義されていないことがわかりました - 奇妙な :-( 何が問題なのか教えてください。
お時間をいただきありがとうございます。
編集:あなたの回答に基づいて、これらの解決策に従ってみましたが、どちらもうまくいきました。
イベントで form1 にバインドし、ドキュメントの準備ができたらこれを含めます。
> jQuery(document).ready( > function () { > jQuery("#form1").on("click", "input[type='text']", function () { > this.select(); > }); > });
ドキュメント自体へのイベントのバインド -
jQuery(document).on("click", "input[type='text']" ,function () { this.select(); });
最初のものは、パフォーマンスが高いほど安全だと思われますが、何を提案しますか?