preventDefault()无法在Mozilla中运行

时间:2012-12-28 10:24:20

标签: jquery preventdefault

我想避免在文本框中输入要输入的内容。 文本框字段是针对美国格式的电话号码,因此我在第3和第6位之后添加 - (破折号)通过JQuery,当用户输入时自动添加,但我不希望用户输入 - (破折号) )通过键盘手动。

$("#someID").keydown(function (e){
if(e.keyCode==189){
    e.preventDefault();
}else{

    var myLength = $(this).val().length;
    var text1=$(this).val();
    if((myLength==3) ){              
        $(this).val($(this).val()+'-');
              }else if(myLength==7){
                  $(this).val($(this).val()+'-');
              }
    }  
});

189是 - (破折号/连字号)

的键码

2 个答案:

答案 0 :(得分:2)

jQuery规范化which属性,您可以使用此属性而不是keyCode

if (e.which === 189) {

您还可以考虑使用Masked Input插件。

答案 1 :(得分:0)

只需改为:

if(e.keyCode==109){
   //---------^^^------109 is the keycode for hyphen

您可以在此处查看:http://www.cambiaresearch.com/articles/15/javascript-char-codes-key-codes