the one asked hereと同じ静脈に沿って、入力キーがChromeでどのように処理されるかに関する質問があります。onKeypress ChromeでテキストフィールドのKeyイベントが機能しない
私が達成しようとしている効果は、現在のフィールド内でフォーカスがある間に、Enterキーが1つのボタンのクリックイベントを呼び出すことができるようにすることです。 aspxの
<form id="form1" runat="server">
<div>
<asp:LinkButton ID="newBtn" runat="server" OnClick="btnLogin_Click" Text="ASP Link" />
<asp:TextBox ID="txtContainer" runat="server" Width="100" />
<asp:Label ID="time_lbl" runat="server" />
</div>
</form>
と
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
txtContainer.Attributes.Add("onKeyPress", "doClick('" + newBtn.ClientID + "',event)");
}
}
public void btnLogin_Click(object sender, EventArgs e)
{
time_lbl.Text = txtContainer.Text;
}
aspx.cs の背後にあるコード内の内
<script type="text/javascript">
//attempting to capture keypress for chrome here but this is not working
$("#txtContainer").keypress(function (e) {
if (e.keyCode == '13') {
e.preventDefault();
doClick(buttonname, e);
return false;
}
});
function doClick(buttonName, e) {
var key;
if (window.event)
key = window.event.keyCode; //IE
else
key = e.which; //firefox
if (key == 13) {
var btn = document.getElementById(buttonName);
if (btn != null) {
btn.click();
event.keyCode = 0
}
}
}
</script>
:
のjavascript:これを実現するために、私は次のコードを使用しています上記のコードはFFとIEでは正常に動作しますが、クロムはフォーム全体Enterキーでキー入力をキャプチャします。
ありがとうございます。
は代わりにe.keyCode' '13'のe.which ==='使用してみてください。 'keypress()'イベントで私はそのような問題を抱えており、 'e.which'はそれを解決するようです。さもなければ 'keyup()'や 'keydown()'を使ってください。 – elclanrs
いずれかがあなたを助けましたか?私は同じ問題に遭遇しています。これらは私の問題を解決しませんでした。 – TheLifeOfSteve
@Steveいいえ私は以来、この問題に対する他の多くの言及を見つけましたが、解決策はありませんでした。これは、クロムが入力キーを管理する方法とフォームの提出方法にリンクしているようです。私がそれを解決するなら、私は答えをここに掲示するでしょう。 – rlcrews