-1

私は現在jqueryを読んでおり、jquery関数に関するいくつかの問題に直面しています..関数に関して誰かが私を導くことができます. 現在、reqが同じ場合、1つの関数のみを作成し、一度に2回呼び出したいと考えています..しかし、関数は機能していませんplsの専門家がコードで私を案内してくれます。

var errorAlpha = function(){

        $(this).focus().keyup(function(){

            var reg = /^([A-Za-z]+)$/;
            var check = $(this).val();              

            if(reg.test(check)==true && check.match(reg)==true)
              {
                    $(this).removeClass('error_Aplha');
              }
              else {
                    $(this).addClass('error_Aplha');
              }

            }),blur(function(){

                var check = $(this).val();
                var reg = /^([A-Za-z]+)$/;

                if(reg.test(check)==true && check.match(reg)==true)
                  {
                    $(this).removeClass('error_Aplha');
                  }
                else {
                    $(this).addClass('error_Aplha');
                  } 

            });


    };

        $('#step1 #fName').function(errorAlpha());

HTMLはこちら

<input type="text" class="width-260" id="fName"/>

Cssはこちら

.error_Aplha {
border:1px solid #b20000 !important;    

box-shadow: 0px 0px 5px #b20000;
-webkit-box-shadow: 0px 0px 5px #b20000;
-moz-box-shadow: 0px 0px 5px #b20000;
 }
4

4 に答える 4

0

あなたのコード$('#step1 #fName').function(errorAlpha());は間違っています。何も起こりません。

何かをトリガーしたい場合は、クリック、キー、マウスイベントなどのイベントハンドラーをアタッチする必要があります。イベントハンドラーを設定する1つの方法は次のとおりです。

 $('#step1 #fName').keypress(function(){
   errorAlpha();
 });

jQueryイベントメソッドのリストは次のとおりです。http://api.jquery.com/category/Events/

アップデート:

私はあなたのコードを更新しました、そしてそれはここで働いていますhttp://jsfiddle.net/muthkum/gU3PU/2/

于 2012-11-23T06:47:39.070 に答える
0

ここに構文エラーがあります:

}),blur(function(){

ピリオドを使用する必要があります。

}).blur(function(){

関数を使おうとすると、存在しないメソッドを使用します。関数名の後に括弧が付いている場合は、イベントが発生したときではなく、イベントをバインドしたときに関数が呼び出されることを意味します。

これ:

$('#step1 #fName').function(errorAlpha());

次のようになります。

$('#step1 #fName').click(errorAlpha);

このmatchメソッドはブール値を返しません。配列またはnull:を返します。

if (reg.test(check) == true && check.match(reg) != null) {

デモ: http: //jsfiddle.net/y4UtT/

于 2012-11-23T06:49:06.833 に答える
0

2回使いたい機能は別途作成してください。

function common(){
...
}

それからあなたはすることができます

$(' #fName').focus().blur(common);

$(' #fName').blur(common);
于 2012-11-23T07:03:19.863 に答える
0

このようなことを試してください

function errorAlpha(obj){
    var reg = /^([A-Za-z]+)$/;
    var check = $(obj).val();              

    if(reg.test(check)==true && check.match(reg)==true)
    {
        $(obj).removeClass('error_Aplha');
   }
    else {
        $(obj).addClass('error_Aplha');
   }

 }
 $('#fName').focus().keyup(function(){
        errorAlpha(this);
     }).blur(function(){
            errorAlpha(this);
  });
于 2012-11-23T07:30:38.003 に答える