2012-11-23 115 views
-1

我目前正在阅读jQuery和我米面临jQuery功能上的一些问题..任何人可以指导我关于功能。目前我只想创建一个函数,每次调用两次,如果需求相同..但函数不工作请专家指导我在代码中。jquery功能不工作

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; 
} 
+0

你有一个语法错误'}),blur'。调试代码是寻找错误的第一步。正确缩进代码也有帮助。 – elclanrs

回答

0

您的代码$('#step1 #fName').function(errorAlpha());是错误的。什么都不会发生。

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

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

这里是jQuery的事件方法列表,http://api.jquery.com/category/Events/

更新:

我更新了你的代码,它的工作在这里http://jsfiddle.net/muthkum/gU3PU/2/

+0

请解释更多 –

+0

请检查此链接想标记验证的一个功能,但仍然无法正常工作 [链接](http://jsfiddle.net/X3ZDQ/6/) –

+0

@GreatOne我更新了我的答案。 –

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/

+0

我都在用方法 '}),blur(function (){' 或 '})。blur(function(){' 但是两者仍然无法解释更多 –

+0

@GreatOne:我测试了代码,剩下的问题是'match'方法。上面编辑 – Guffa

+0

伟大的朋友...感谢它的工作thansk很多 –

0

分别创建您想要使用两次的功能。

function common(){ 
... 
} 

然后,你可以做

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

$(' #fName').blur(common); 
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); 
    });