ASP.NET MVC اياكس - هل من الممكن تنفيذ ولدت - اياكس الرابط مع مدخلات لوحة المفاتيح?
-
05-09-2019 - |
سؤال
هو أي شخص قادرا على تنفيذ - ولدت في اياكس.ActionLink عندما يضغط المستخدم على مفتاح على لوحة المفاتيح ؟ (هذا هو مطلوب من أجل الوصول)
ملاحظة:أنا باستخدام ASP.NET MVC + Microsoft شبيبة المكتبات (...Ajax.js / ...MvcAjax.js) + مسج
جافا سكريبت لالتقاط keypress (أي + فايرفوكس)
$(document).keypress(function(event) {
if(event.keyCode == 27) {
//execution here
var a = document.getElementById('linkid');
}
});
Html التي تم إنشاؤها من قبل ASP.NET MVC (اياكس.ActionLink())
<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
}
});
المحلول
هل حاولت استخدام مسج زناد الآلية ؟
$(document).keypress( function(e) {
if (e.keyCode == 27) {
$(this).trigger('click');
}
}
إذا تعذر ذلك, يمكنك فقط استدعاء href الذي لا كامل إعادة النشر ، ولكن ينبغي أن إنجاز العمل المطلوب إذا كان العمل هو مكتوب على التعامل مع كل من أياكس و غير طلبات اياكس.
$(document).keypress( function(e) {
if (e.keyCode == 27) {
location.href = $(this).attr('href');
}
}
نصائح أخرى
يرجى محاولة هذا:
var a = document.getElementById('linkid');
$(a).trigger('click');
لا تنتمي إلى StackOverflow