2012-01-02 18 views
2

フィールドが空であるかどうかを確認するために、次のコードを使用しています。JavaScriptを使用した整数検証

<label>Sermon Title</label> 
<input class="text-input small-input" type="text" id="sermon_title" name="sermon_title" /> 
<span id="stitlespansuccess" class="input-notification success png_bg" style="display: none;"></span> 
<span id="stitlespanerror" class="input-notification error png_bg" style="display: none;"></span> 

    $(document).ready(function() { 
     var submit   = false; 
     $('#sermon_title').bind('focusout', function() { 
      var sermon_title  = $('#sermon_title').val(); 
      var pid  = $('#preacher').val(); 
      if(sermon_title == "") { 
       $('#stitlespanerror').html("Title required"); 
       $('#stitlespanerror').show(); 
       $('#stitlespansuccess').hide(); 
       submit = false; 
      } 
      else 
      { 
       $('#stitlespanerror').hide(); 
       $.post("<?= site_url('admin/sermons/uniquetitle/') ?>", { sermon_title: sermon_title,pid:pid }, 
       function(data){ 
        if("success" == data.trim()) { 
         $('#stitlespansuccess').show(); 
         submit = true; 
        } 
        else 
        { 
         $('#stitlespansuccess').hide(); 
         $('#stitlespanerror').html("Title already taken"); 
         $('#stitlespanerror').show(); 
         submit = false; 
        } 
       }); 
      } 
     }); 
}); 

値が整数かどうかをチェックしたいと思います。

答えて

4

を働くことを願っています。この

を試してみてください(例えば、いくつかのような:1.0など ')

function is_int(value){ 
    if((parseFloat(value) == parseInt(value)) && !isNaN(value)){ 
    return true; 
    } else { 
    return false; 
    } 
} 
+0

これは、1行の関数に単純化することができます: 'return parseFloat(value)=== parseInt(value)&&!isNan(value);' – nnnnnn

+2

P.S. '012 'は整数ではないと考えていることに注意してください...' parseInt() 'を使用しないでください。' parseInt(value、10) ' – nnnnnn

+0

良い点 - parseIntに基数を加える必要があります。 –

1

(ますisNaN(値))場合

が、それはこれが整数かどうかを確認するために正しい関数である

+0

:値が「123.45」で何場合は、桁の一定数にそれを制限する必要がある場合、これは正規表現で使いやすいですか? – nnnnnn

0

は、の値が整数かどうかをチェックしたいですか?確かに説教のタイトルではない?あなたの質問にはまったく関係しないようなコードがたくさんあります。とにかく

、あなたは数に変換し、その後数は同じ番号が切り捨て等しいかどうかをテストすることができ、あなたはそれが整数であることを確認するためにユーザーの入力値を検証したいと仮定すると:

function isInteger(val) { 
    var n = +val; // convert with unary plus operator 
    return val != "" && n === Math.floor(n); 
} 

空の文字列は0に変換されるため、valの文字列は空ではないことに注意してください。

潜在的な問題:上記の "1.000"は整数として扱われます - 許容できるのでしょうか?

あなたはそれにアプローチする別の方法は、数字だけが(ない小数点)を入力されていないことを確認し、正規表現で検証することで、ユーザは、小数点を入力したくない場合は、次の

function isInteger(val) { 
    return /^-?\d+$/.test(val); 
} 

// e.g., max four digits, optional minus sign: 
return /^-?\d{1,4}$/.test(val); 

(注:。`isNaN() is "broken"

動作しません
+0

これは単なる例です – Natasha

+0

確かです。私が指摘しているのは、あなたが例を挙げておけば、それが手元の質問に関連するようにしようとすることでした。 – nnnnnn

関連する問題