ユーザーがキーボードのキーを押したときに、誰かがAjax.ActionLinkを生成することができますか?(これは、アクセシビリティのために必要とされる)ASP.NET MVC Ajax - キーボード入力で-GENERATED-Ajaxリンクを実行できますか?
注:私は、ASP.NET MVC +マイクロソフトJSライブラリを使用しています(... Ajax.js/... MvcAjax.js)+ jQueryの
Javascriptのキー操作(IE + Firefoxの)捕獲する
$(document).keypress(function(event) {
if(event.keyCode == 27) {
//execution here
var a = document.getElementById('linkid');
}
});
ASP.NET MVC(Ajax.ActionLink())によって生成されたHTML
<a id="linkid" href="/controller/action" onclick="
Sys.Mvc.AsyncHyperlink.handleClick(this, new Sys.UI.DomEvent(event),
{ insertionMode: Sys.Mvc.InsertionMode.replace,
updateTargetId: 'SomeDivId' });
">LinkText</a>
以下は私が探しているものではありませんが、これは動作しません!
$(document).keypress(function(event) {
if(event.keyCode == 27) {
var a = document.getElementById('linkid');
a.onclick(); //doesn't exist in Firefox
a.click(); //doesn't "work" in Firefox (reference to "this" [a] is needed .NET MVC javascript)
a["onclick"](); //same as .onclick()
a["click"](); //same as .click()
//or even:
a.onclick.apply(a); //doesn't exist in Firefox
a.click.apply(a); //Somehow keeps "this" reference, but throws Sys.ArgumentUndefinedException
}
});
まあ、私はjQueryの一部を試していません。私は実際にそれが働くかもしれないと思う。 2番目の部分については、AJAXと非AJAXの両方の要求に対してハンドラを作成しましたが、イントラネットであり、誰でも(IE7)と私(FF)はAJAXを使用して、特にキーボード入力を使用する必要があります。私は明日次のjQueryパートを試してみるつもりです。 – Ropstah
よくpotverdrie、それは動作します! :) – Ropstah