2012-11-23 113 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); 
    });