0

次のコードを記述して、Enterキーが押されたときに処理します。たとえば、テキストエリアの場合は4行しか許可されず、値が空の場合はそれ自体に焦点を合わせます。

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();
4

1 に答える 1

0

今日、同様の質問用のプラグインを作成しました。見てみな!

これは検証を行いませんが、おそらく自分で変更できます。

于 2011-01-08T17:20:49.160 に答える