2012-01-04 7 views
0

は、私は、次の機能があります。この機能でダブルコンソールメッセージが表示されるのはなぜですか?

var checkNameLenght = function(name,nameLenght,allowedLenght,defaultName) { 

    var result; 

    if(!(nameLenght <= allowedLenght) || !(/[^a-z]/i.test(name))) { 
     result = name; 
    } 
     else { 
      if(opts.debug == true) { 
       console.log(name+' is to long or contains special characters/numbers | Please choose a name shorter than '+allowedLenght+' characters or remove any character/number'); 
      } 
      result = defaultName; 
     } 

    return result; 

} 

私は(私の場合には、入力の値)を文字列の長さをチェックするためにそれを使用すると、それは特殊文字や数字が含まれている場合。

私はそうのようにそれを使用します。

var input = 'Somevalue'; 

checkNameLenght(input ,input.length,16,'Username'); 

唯一のことは、二回input文字列は、コンソールの意志の出力よりも、上記の条件のいくつかが含まれている場合は、そのメッセージです。

どうしてですか?

+1

JS Consoleで提供されたコードを手動で実行すると、二重印刷エラーは発生しませんでした。 'checkNameLenght()'が呼び出されている間は、何度も呼び出されていないことを確認してください。もう少しコードを見れば参考になるかもしれません。 –

+1

私はあなたに答えがありませんが、私は卑劣であり、 "長さ"を "長さ"と全機能を通して綴っていることを指摘しました。 – evilspoons

+1

あなたのコードには、このログが2回記録されることは何もありません。おそらく、コードの残りの部分で 'checknameLenght()'関数を2回以上呼び出すでしょうか? – swatkins

答えて

2

私はそれをテストして、うまく動作します。この関数を2回呼び出さないのは本当ですか? opts.debugが何であっても避けてください。普通の古いjsを使ってください。if(console)

+0

はい、私は関数を2回呼び出す、私はいくつかの他の理由を探していた、私はここで尋ねていない場合私はあきらめるだろう関数...そして、opt.debugユーザがコンソール内のメッセージを見るかどうかを選択する場合は、jQueryプラグインの一部です – Roland

関連する問題