0

いくつかのことを使用して、ベストプラクティスが何であるかを理解しようとしています。

  1. ifステートメント内にifステートメントを持つことが悪いことかどうか。
  2. 私のコードを凝縮するためのより良い方法があれば、連鎖した一連の論理演算子を連鎖させません。

また、なぜ私isNumericが機能していないのかわかりません.2つの入力ボックスを備えた非常に単純なフォームがあり、jqueryでそれらをループしています。何が起こるかというと、5 文字を超える文字列を入力でき、isNumeric条件にヒットしません。理想的には、ユーザーはこれに数字を入力する必要があります。何か案は?

$("form :input").each(function(){

if(this.id = "zipCode" && $(this).val().length < 5 && $(this).is(":visible")){
 if($.isNumeric($(this).val())){
     //do something
 }
}
});
4

1 に答える 1

1

関数に間違ったパラメーターを渡していますisNumeric。この行

if($.isNumeric($(this.val())){

する必要があります

if($.isNumeric($(this).val())){

条件の長いリストについては、その目的を反映した名前を持つ別の関数にリファクタリングできます。たとえば、この場合、次のような関数を作成できます。

function isValidZipcode(field) {
    return field.id = "zipCode" && 
           $(field).val().length < 5 && 
           $(field).is(":visible");
}

次に、次のようにきれいに見えます。

if(isValidZipcode(this)){
    if($.isNumeric($(this).val())){
         //do something
    }
}
于 2013-05-14T20:06:30.923 に答える