-1

我目前正在阅读 jquery 并且我在 jquery 函数上遇到了一些问题.. 任何人都可以指导我有关函数的问题。目前我只想创建一个函数,如果 req 相同,则一次调用两次 .. 但函数不起作用,请专家在代码中指导我。

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());是错误的。什么都不会发生。

如果你想触发某些东西,那么你需要附加一个事件处理程序,如点击、按键、鼠标事件。这是设置事件处理程序的一种方法,

 $('#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

单独创建要使用两次的函数。

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 回答