jquery函数不起作用

时间:2012-11-23 06:42:00

标签: jquery-ui jquery jquery-plugins

我正在阅读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 个答案:

答案 0 :(得分:0)

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

如果您想触发某些内容,则需要附加事件处理程序,如click,key,mouse事件。这是设置事件处理程序的一种方法,

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

以下是jQuery事件方法列表http://api.jquery.com/category/Events/

<强>更新

我更新了您的代码,它在http://jsfiddle.net/muthkum/gU3PU/2/

工作

答案 1 :(得分:0)

这里有语法错误:

}),blur(function(){

您应该使用句号:

}).blur(function(){

当您尝试使用该函数时,您正在使用一个不存在的方法,并且在函数名后面有括号,表示在绑定事件时调用该函数,而不是在事件发生时调用。 / p>

此:

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

应该是这样的:

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

match方法不返回布尔值,返回数组或null

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

演示:http://jsfiddle.net/y4UtT/

答案 2 :(得分:0)

单独创建要使用两次的功能。

function common(){
...
}

然后你可以做

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

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

答案 3 :(得分: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);
  });