想要扩展jQuery来处理基于tabindex的自定义输入键事件

时间:2011-01-08 16:50:30

标签: jquery key tabindex enter

我编写以下代码来处理当按下回车键时几乎没有验证,如果它是textarea只允许四行,如果值为空,则关注自身。

var temp = 1;
 function getLines(id)
    {
      return temp=temp+id;
    }
$("#theform").keypress(function(e){
var key = e.charCode ? e.charCode : e.keyCode ? e.keyCode : 0;                                
    if (key == 13) {
        var $targ = $(e.target);
        var tindex = $targ.attr("tabindex");
        var count =1;
        var focusNext = false;
        var allowedNumberOfLines = 4;
       if ($targ.is("textarea") && !$targ.is(":button,:submit")) {
          var lines= getLines(count);
            if (lines > allowedNumberOfLines)
            {
            $("#login_error").css('background', '#F7F77C').fadeIn(1000).html("Only "+allowedNumberOfLines+" Lines Allowed").fadeOut(1000);
            tindex++;
            $("[tabindex=" + tindex + "]").focus();    
            return false;
            }
        }
        else if($targ.val() =='' || $targ.val() == "undefined")
        {
        $("[tabindex=" + tindex + "]").focus();    
         return false;
        }
        else if($targ.val() !='' || $targ.val() != "undefined")
        {
        tindex++;
        $("[tabindex=" + tindex + "]").focus();    
         return false;
        }
    }
});

有没有办法让它成为一个自定义函数,以便我可以像

一样调用函数
$('theform').returnPress();

1 个答案:

答案 0 :(得分:0)

我今天早些时候为similar question创建了一个插件。 Check it out!

这不做任何验证,但也许您可以自行更改。