2011-11-28 187 views
0

我已經編寫了一個登錄腳本,它通過連接第一個姓氏(模糊處理),刪除空格和刪除特殊字符來創建用戶名。jQuery代碼適用於jsFiddle,但不適用於我的網站

在jsFiddle中,一切正常,但在我的網站上沒有 - 我得到3次錯誤'$ str'沒有被定義 - 所以我的猜測是5 + 10行的替換函數沒有被觸發。

任何想法有什麼不對?

http://jsfiddle.net/Hxjyy/2/

代碼:

jQuery().ready(function() { 
    jQuery('#firstname').blur(function() { 
     var $login = jQuery('#firstname').val().toLowerCase()+jQuery('#firstname').val().toLowerCase(); 
     $login = $login.replace(/\s/g, ""); 
     $login = replaceChars($login); 
     jQuery("#login").val($login); 
    }); 
    jQuery('#lastname').blur(function() { 
     var $login = jQuery('#firstname').val().toLowerCase()+jQuery('#lastname').val().toLowerCase(); 
     $login = $login.replace(/\s/g, ""); 
     $login = replaceChars ($login); 
     jQuery("#login").val($login); 
    }); 

    function replaceChars($str) 
     { 
     var charMap = { 
      é:'e',è:'e',ë:'e',ê:'e',à:'a', 
      ç:'c',á:'a',ö:'o' 
     }; 
     var str_array = $str.split(''); 

     for(var i = 0, len = str_array.length; i < len; i++) { 
      str_array[ i ] = charMap[ str_array[ i ] ] || str_array[ i ]; 
     } 
     $str= str_array.join(''); 
     return($str); 
    } 
}); 
+1

的您發佈的鏈接與您發佈的鏈接不同。 – jprofitt

+0

你在jsfiddle中的代碼不起作用... –

+0

woops - 出錯了 - 只是片刻... – ptriek

回答

0

我才發現,原來問題是由在replaceChars功能的特殊字符造成的 - 如果我使用JavaScript實體,如\替換它們u00EB它工作正常...

0

編輯 - 好了,現在它更有意義,你嘗試服用之外的功能(之前)$(文件)。就緒()?我有時會遇到問題。你應該寫jQuery(document).ready()

 function replaceChars($str) 
     { 
     var charMap = { 
      é:'e',è:'e',ë:'e',ê:'e',à:'a', 
      ç:'c',á:'a',ö:'o' 
     }; 
     var str_array = $str.split(''); 

     for(var i = 0, len = str_array.length; i < len; i++) { 
      str_array[ i ] = charMap[ str_array[ i ] ] || str_array[ i ]; 
     } 
     $str= str_array.join(''); 
     return($str); 
     } 


jQuery(document).ready(function() { 
    jQuery('#firstname').blur(function() { 
     var $login = jQuery('#firstname').val().toLowerCase()+jQuery('#firstname').val().toLowerCase(); 
     $login = $login.replace(/\s/g, ""); 
     $login = replaceChars($login); 
     jQuery("#login").val($login); 
    }); 
    jQuery('#lastname').blur(function() { 
     var $login = jQuery('#firstname').val().toLowerCase()+jQuery('#lastname').val().toLowerCase(); 
     $login = $login.replace(/\s/g, ""); 
     $login = replaceChars ($login); 
     jQuery("#login").val($login); 
    }); 

}); 
+0

對不起,發佈了錯誤的鏈接 - http://jsfiddle.net/Hxjyy/2 /是正確的... – ptriek

+0

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

+0

這在jsfiddler中有效,但在我的網站上給出錯誤'Uncaught SyntaxError:Unexpected token ILLEGAL'... – ptriek

相關問題