jQuery发送事件作为参数

时间:2014-07-28 10:27:40

标签: javascript jquery

我想使用keyupkeydown检查输入中输入字符的数量。 我之前已经完成了它,但不是单独的功能,它在代码中是一个很大的混乱。我用 event当我在没有单独功能的情况下完成它时,一切都很好,但现在我遇到了通过函数发送它的问题。也许这是由完全错误的方法造成的,所以请给我一些建议,如何正确地做。

这是我的独立功能:

function char_check($input_id, $div_id, $char_max, event)
{


    if(($char_max-$($input_id).val().length)<=0)
    {   
        var key = event.keyCode || event.charCode;
        if(key!=8)
        {
            event.preventDefault();
        }
    }


    if(($char_max-$($input_id).val().length)<0)
    {
        $($div_id).text("Your data will be cut short!");
    }
    else
    {
        $($div_id).text($char_max-$($input_id).val().length);
    }

}

这就是我调用此函数的方式:

$('input[name=author]').keydown(function(e){

char_check($(this), "#chars_auth", 50, e);

});

问题:事件不起作用。

1 个答案:

答案 0 :(得分:0)

据我所知,代码不起作用,但我不确定什么不起作用。以下是一些建议。首先,我将创建一个函数来构建您的&#34;检查函数&#34;。类似的东西:

var createCharCheck = function (div_id, char_max) {

  return function (event)  {
    if ((char_max - $(this).val().length) <= 0) {   
      var key = event.keyCode || event.charCode;
      if(key != 8) {
        event.preventDefault();
      }
    }

    if((char_max - $(this).val().length) < 0) {
      $(div_id).text("Your data will be cut short!");
    } else {
      $(div_id).text(char_max - $(this).val().length);
    }
  }

}

$('input[name=author]').keydown(createCharCheck('#chars_auth', 50));

这不是花哨,但保存一些代码并利用关闭。现在您有一个可以在任何输入上使用的功能。希望这会有所帮助。