ASP.NET MVC اياكس - هل من الممكن تنفيذ ولدت - اياكس الرابط مع مدخلات لوحة المفاتيح?

StackOverflow https://stackoverflow.com/questions/906761

سؤال

هو أي شخص قادرا على تنفيذ - ولدت في اياكس.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');
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top