2012-01-15 8 views
11

मुझे एहसास है कि StopDefault() फ़ायरफ़ॉक्स के साथ काम नहीं कर रहे अन्य प्रश्न हैं, लेकिन उन्होंने मेरी मदद नहीं की।preventDefault() फ़ायरफ़ॉक्स में SELECT तत्वों पर काम नहीं कर रहा है 9.0.1

मुझे तीन चयन सूची मिल गई हैं, और मैं चाहता हूं कि तीर कुंजियों का उपयोग करके किसी भी मूल्य को के बिना नेविगेट करना है। कोड क्रोम में बहुत अच्छा काम करता है, लेकिन फ़ायरफ़ॉक्स में यह फोकस करता है और उसके बाद तत्व पर मूल्य बदल जाता है।

http://jsbin.com/ofitif/3/edit

जावास्क्रिप्ट:

$(document).ready(function() { 
    $('.myinput').keydown(function (evt) { onkeydown(evt); }); 
    $('.myinput:first').focus(); 
}); 

function onkeydown(evt) { 
    evt.preventDefault(); 
    console.log(evt.which); 
    if(evt.which == 39) { 
    $(document.activeElement).next().focus(); 
    } 
    else if(evt.which == 37) { 
    $(document.activeElement).prev().focus(); 
    }    
} 

HTML:

<div id="inputs"> 
    <select class="myinput"> 
     <option value="1">One</option> 
     <option value="2">Two</option> 
     <option value="3">Three</option> 
    </select> 
    <select class="myinput"> 
     <option value="1">One</option> 
     <option value="2">Two</option> 
     <option value="3">Three</option> 
    </select> 
    <select class="myinput"> 
     <option value="1">One</option> 
     <option value="2">Two</option> 
     <option value="3">Three</option> 
    </select> 
</div> 
+0

के लिए धन्यवाद @Andrew Whitaker संपादित करें। मैं अगली बार कोड को शामिल करना सुनिश्चित कर दूंगा। – Ace

उत्तर

0

वापसी false अपने keydown हैंडलर से:

012,
$('.myinput').keydown(function (evt) { onkeydown(evt); return false; }); 
+0

धन्यवाद @techfoobar, लेकिन ऐसा लगता है कि यह फ़ायरफ़ॉक्स पर काम नहीं करता है। – Ace

1

nsListControlFrame::KeyPresshttp://mxr.mozilla.org/mozilla-central/source/layout/forms/nsListControlFrame.cpp में यह जांचने की प्रतीत नहीं होती कि डिफ़ॉल्ट कार्रवाई को रोका गया था या नहीं। एक बग फाइल करें?

+2

यह पता चला है कि यह [बग 2 9 1082] है (https://bugzilla.mozilla.org/show_bug.cgi?id=291082) और यह लगभग 7 साल पुराना है ... – Neil

1

अपने आवश्यकता के अनुसार के लिए रोकने default..it नीचे की तरह कुछ हो जाएगा मूल्य गुजर कोशिश ..

evt.preventDefault ? evt.preventDefault() : evt.returnValue = false; 

यह मेरे लिए काम किया plz इसे कोशिश .......

संबंधित मुद्दे