سؤال
وكيف لوقف الحدث بضغطة في keydown.
ولدي معالج keydown وأنني بحاجة إلى التوقف عن الحدث بضغطة.
والواقع لدي الشكل والنص في ذلك.
وWHN الصحافة المستعمل "دخول" مفتاح، keydown ط تشغيل الحدث وجود معالج.
وسوف تسبب في بضغطة شكل تقديم، لذلك أنا بحاجة إلى التوقف عن الحدث بضغطة في بلدي معالج keydown.
المحلول
function onKeyDown(event) {
event.preventDefault();
}
أو
function onsubmit(event) {
return false;
}
وعودة كاذبة لوقف أحداث نشر
نصائح أخرى
في الأوبرا، لديك لاستخدام الحدث keypress
لمنع الإجراءات الافتراضية لأحداث لوحة المفاتيح. keydown
يعمل على منع العمل الافتراضي في جميع المتصفحات ولكن ليس في الأوبرا.
هذه القائمة الطويلة من التناقضات في لوحة المفاتيح التعامل مع مختلف المتصفحات.
وحاول event.cancelBubble = true
في معالج الأحداث.
وهنا توقفت عن حالة السطح لمدة تصل / DN / يسار / يمين مفاتيح:
$(document).on("keydown", function(e) {
if(e.keyCode >= 37 && e.keyCode <= 40) {
e.stopImmediatePropagation();
return;
}
});
وكما أنني حاولت <م> e.preventDefault م> أو <م> event.cancelBubble = صحيح م> من الإجابات أعلاه، ولكن لم يكن لديهم تأثير.
والكتابة،
<script type="text/javascript">
function keyDn(obj)
{
if(window["event"]["keyCode"]==48) // key 0 will disabled keyPress event
{
obj["onkeypress"]=null;
}
}
function keyPs(obj)
{
alert("Keypress");
}
</script>
<form id="form1" runat="server">
<div>
<input type="text" onkeydown="keyDn(this)" onkeypress="keyPs(this)" />
</div>
</form>
وفي معالج keydown.
وكنت قادرا على الحصول على event.preventDefault ()؛ للعمل في سفاري وفايرفوكس، ولكن ليس IE7 أو IE8.
إذا كنت تريد فقط لتعطيل مفتاح الدخول، تأكد من أنك التحقق أيضا من قيمة المفتاح (13 لأدخل) ووضع فقط event.preventDefault () لهذا المفتاح.
وأي شخص قادرا على الخروج مع جوابا لIE7 / 8 أو أوبرا؟