次のコードを実行するときに発生する問題は、最初にテキストボックスの元の内容を表示し、次に「Enter」を押すまで押し上げたキーの各セットを表示します。したがって、テキストボックスに元々「アイスクリーム-ピエールのチョコレートチップ」が含まれていて、テキストボックスをクリックしてフォーカスを取得し、「お茶」に置き換えると、それぞれ次の内容の4つのアラートボックスが表示されます。
- アイスクリーム-ピエールのチョコレートチップ
- T
- テ
- お茶
次に、別の行をクリックして別の操作を行うと、以前の元の4つのアラートボックスが表示され、次に新しいアラートボックスが表示されます...スタックが続き、理由がわかりません。
これが私の.csファイルからのいくつかのコードです-私が追加した「OnKeyPress」属性に注意してください:
public TCell(String celltext,String strTextBox,String strName)
{
int iWidth = 0;
int intRandom =
iWidth = Convert.ToInt32(strTextBox);
tblCell = new TableCell();
TextBox txtItem = new TextBox();
txtItem.ID = strName;
txtItem.Text = celltext;
txtItem.Width = iWidth;
txtItem.BorderStyle = BorderStyle.None;
txtItem.CssClass = "cssAdjust trans";
txtItem.Style.Add("padding", "0px 5px 0px 5px");
txtItem.Attributes.Add("onKeyPress","captureTable(this.value);");
txtItem.Attributes.Add("onFocus", "javascript:this.select();");
tblCell.Controls.Add(txtItem);
}
そして、Enterキーを押すと表示される関数は次のとおりです。
function captureTable(strValue)
{
$(document).keypress(function (e) {
if (e.which == 13) // Enter has been pressed.
{
e.preventDefault();
document.getElementById("<%=HiddenField1.ClientID %>").value = strValue;
alert(strValue);
}
});
あなたが私に与えることができるどんな助けにも前もって感謝します。私は「window.event」を使用してこれを機能させましたが、それは私が読んだものからIEにロックされ、これにJQueryを使用しようとしています。
(アップデート):
わかりました。以下のkmb385で提供されているコードを使用しましたが、まだ何かが足りないと思います。アラートが表示されないので、'$( "。txtHook")。keypress(function(e){'行にブレークポイントを設定しましたが、テーブルテキストボックス内のキー入力中にブレークポイントに到達しません、Enterキーを含みます。
default.apsxページ内のコードは次のとおりです。
<asp:Content ID="HeaderContent" runat="server" ContentPlaceHolderID="HeadContent">
<script type="text/javascript">
$(document).ready(function(){
$(".txtHook").keypress(function(e){
if (e.which == 13) // Enter has been pressed.
{
e.preventDefault();
document.getElementById("<%=HiddenField1.ClientID %>").value = $(this).val();
alert(strValue);
}
});
});
私がJQueryを含めることは、サイトのマスターページのbodyタグ内にあります。
<body>
<form id="form1" runat="server">
<asp:ScriptManager ID="ScriptManager1" runat="server" EnablePageMethods="true">
<Scripts>
<asp:ScriptReference Path="~/Scripts/jquery-1.4.1.min.js" />
</Scripts>
</asp:ScriptManager>
(最終更新:)
JQueryを含めるのは間違っていたことがわかりました。マスターページのheadタグに移動し、コードを次のように変更しました。
<script type="text/javascript" src="../scripts/jquery-1.4.1.min.js"></script>
その後、私のkmb385が機能し始めたことを提供するコード:)